1 <div class=
"miniature" [ngClass]=
"{ 'no-videos': playlist.videosLength === 0, 'to-manage': toManage, 'display-as-row': displayAsRow }">
3 [internalLink]=
"routerLink" [href]=
"playlistHref" [target]=
"playlistTarget"
4 [title]=
"playlist.description" class=
"miniature-thumbnail"
6 <img alt=
"" [attr.aria-labelledby]=
"playlist.displayName" [attr.src]=
"playlist.thumbnailUrl" />
8 <div class=
"miniature-playlist-info-overlay">
9 <ng-container i18n
>{playlist.videosLength, plural, =
0 {No videos} =
1 {
1 video} other {{{ playlist.videosLength }} videos}}
</ng-container>
12 <div class=
"play-overlay">
13 <div class=
"icon"></div>
17 <div class=
"miniature-info">
19 [internalLink]=
"routerLink" [href]=
"playlistHref" [target]=
"playlistTarget"
20 [title]=
"playlist.description" class=
"miniature-name" tabindex=
"-1"
22 {{ playlist.displayName }}
25 <a i18n [routerLink]=
"[ '/c', playlist.videoChannelBy ]" class=
"by" *
ngIf=
"displayChannel && playlist.videoChannelBy">
26 {{ playlist.videoChannelBy }}
29 <div class=
"privacy-date">
30 <span class=
"video-info-privacy" *
ngIf=
"displayPrivacy">{{ playlist.privacy.label }}
</span>
32 <span i18n
class=
"updated-at">Updated {{ playlist.updatedAt | myFromNow }}
</span>
35 <div *
ngIf=
"displayDescription" class=
"video-info-description" [innerHTML]=
"playlistDescription"></div>