dev@505
|
1 <mat-card>
|
dev@505
|
2 <mat-card-header>
|
dev@505
|
3 <mat-card-title>{{item.title}}</mat-card-title>
|
dev@505
|
4 <mat-card-subtitle>{{item.description}}</mat-card-subtitle>
|
dev@505
|
5 </mat-card-header>
|
dev@505
|
6 <mat-card-content>
|
dev@348
|
7 <div class="content">
|
dev@409
|
8 <ng-template [ngIf]="isLoading()">
|
dev@409
|
9 <ugly-progress-bar
|
dev@409
|
10 [isDeterminate]="true"
|
dev@409
|
11 [progress]="item.progress"
|
dev@409
|
12 ></ugly-progress-bar>
|
dev@409
|
13 </ng-template>
|
dev@348
|
14 <ng-template [ngIf]="!isLoading()">
|
dev@410
|
15 <ugly-progress-spinner *ngIf="isPending()"></ugly-progress-spinner>
|
dev@409
|
16 <ugly-waves-play-head
|
dev@409
|
17 [colour]="'#c33c54'"
|
dev@409
|
18 [isActive]="isActive"
|
dev@409
|
19 >
|
dev@409
|
20 <ugly-waveform
|
dev@409
|
21 *ngIf="isAudioItem(); else notAudio"
|
dev@409
|
22 [timeline]="timeline"
|
dev@409
|
23 [width]="contentWidth"
|
dev@409
|
24 [audioBuffer]="item.audioData"
|
dev@409
|
25 [onSeek]="onSeek"
|
dev@409
|
26 [colour]="'#0868ac'"
|
dev@412
|
27 [duration]="getDuration()"
|
dev@409
|
28 ></ugly-waveform>
|
dev@409
|
29 </ugly-waves-play-head>
|
dev@409
|
30
|
dev@409
|
31
|
dev@409
|
32 <ugly-waves-play-head
|
dev@409
|
33 #notAudio
|
dev@409
|
34 *ngIf="getFeatureShape() as shape"
|
dev@409
|
35 [ngSwitch]="shape"
|
dev@409
|
36 [colour]="'#c33c54'"
|
dev@409
|
37 [isActive]="isActive"
|
dev@409
|
38 >
|
dev@409
|
39 <ugly-cross-hair-inspector
|
dev@409
|
40 *ngSwitchCase="'vector'"
|
dev@409
|
41 [unit]="item.unit"
|
dev@409
|
42 [isAnimated]="isActive"
|
dev@348
|
43 >
|
dev@409
|
44 <ugly-curve
|
dev@409
|
45 [colour]="getNextColour()"
|
dev@409
|
46 [timeline]="timeline"
|
dev@409
|
47 [width]="contentWidth"
|
dev@409
|
48 [onSeek]="onSeek"
|
dev@409
|
49 [curve]="item.collected"
|
dev@412
|
50 [duration]="getDuration()"
|
dev@409
|
51 ></ugly-curve>
|
dev@409
|
52 </ugly-cross-hair-inspector>
|
dev@409
|
53 <ugly-cross-hair-inspector
|
dev@409
|
54 *ngSwitchCase="'tracks'"
|
dev@409
|
55 [unit]="item.unit"
|
dev@409
|
56 [isAnimated]="isActive"
|
dev@409
|
57 >
|
dev@409
|
58 <ugly-tracks
|
dev@409
|
59 [colour]="getNextColour()"
|
dev@409
|
60 [timeline]="timeline"
|
dev@409
|
61 [width]="contentWidth"
|
dev@409
|
62 [onSeek]="onSeek"
|
dev@409
|
63 [tracks]="item.collected"
|
dev@412
|
64 [duration]="getDuration()"
|
dev@409
|
65 ></ugly-tracks>
|
dev@409
|
66 </ugly-cross-hair-inspector>
|
dev@409
|
67 <ugly-cross-hair-inspector
|
dev@409
|
68 *ngSwitchCase="'notes'"
|
dev@409
|
69 [unit]="item.unit"
|
dev@409
|
70 [isAnimated]="isActive"
|
dev@409
|
71 >
|
dev@409
|
72 <ugly-notes
|
dev@409
|
73 [colour]="getNextColour()"
|
dev@409
|
74 [timeline]="timeline"
|
dev@409
|
75 [width]="contentWidth"
|
dev@409
|
76 [onSeek]="onSeek"
|
dev@409
|
77 [notes]="item.collected"
|
dev@412
|
78 [duration]="getDuration()"
|
dev@409
|
79 ></ugly-notes>
|
dev@409
|
80 </ugly-cross-hair-inspector>
|
cannam@480
|
81 <ugly-cross-hair-inspector
|
cannam@480
|
82 *ngSwitchCase="'regions'"
|
cannam@480
|
83 [unit]="item.unit"
|
cannam@480
|
84 [isAnimated]="isActive"
|
cannam@480
|
85 >
|
cannam@480
|
86 <ugly-regions
|
cannam@480
|
87 [colour]="getNextColour()"
|
cannam@480
|
88 [timeline]="timeline"
|
cannam@480
|
89 [width]="contentWidth"
|
cannam@480
|
90 [onSeek]="onSeek"
|
cannam@480
|
91 [regions]="item.collected"
|
cannam@480
|
92 [duration]="getDuration()"
|
cannam@480
|
93 ></ugly-regions>
|
cannam@480
|
94 </ugly-cross-hair-inspector>
|
dev@488
|
95 <ugly-vertical-scale
|
cannam@471
|
96 *ngSwitchCase="'matrix'"
|
cannam@471
|
97 >
|
cannam@471
|
98 <ugly-grid
|
cannam@471
|
99 [colour]="getNextColour()"
|
cannam@471
|
100 [timeline]="timeline"
|
cannam@471
|
101 [width]="contentWidth"
|
cannam@471
|
102 [onSeek]="onSeek"
|
cannam@471
|
103 [grid]="item.collected"
|
cannam@471
|
104 [duration]="getDuration()"
|
cannam@471
|
105 ></ugly-grid>
|
dev@488
|
106 </ugly-vertical-scale>
|
dev@409
|
107 <ugly-instants
|
dev@409
|
108 *ngSwitchCase="'instants'"
|
dev@409
|
109 [colour]="getNextColour()"
|
dev@409
|
110 [timeline]="timeline"
|
dev@409
|
111 [width]="contentWidth"
|
dev@409
|
112 [onSeek]="onSeek"
|
dev@409
|
113 [instants]="item.collected"
|
dev@412
|
114 [duration]="getDuration()"
|
dev@409
|
115 ></ugly-instants>
|
dev@363
|
116
|
dev@409
|
117 <div *ngSwitchDefault>Feature cannot be visualised.</div>
|
dev@409
|
118 </ugly-waves-play-head>
|
dev@348
|
119 </ng-template>
|
dev@348
|
120 </div>
|
dev@505
|
121 </mat-card-content>
|
dev@505
|
122 <mat-card-actions
|
dev@456
|
123 *ngIf="isAudioItem()">
|
dev@505
|
124 <a mat-icon-button
|
dev@456
|
125 *ngIf="isAudioItem() && item.isExportable"
|
dev@456
|
126 [href]="sanitize(item.uri)"
|
dev@456
|
127 [download]="generateFilename(item)"
|
dev@505
|
128 ><mat-icon>file_download</mat-icon></a>
|
dev@505
|
129 <button mat-icon-button (click)="remove.emit(item)">
|
dev@505
|
130 <mat-icon>delete_forever</mat-icon>
|
dev@456
|
131 </button>
|
dev@505
|
132 </mat-card-actions>
|
dev@505
|
133 </mat-card>
|