### Seasons and Episodes

@if (selectedSeason) {
}
@if (selectedSeason && !showSeasonEmptyState()) {
grid_view view_list
}
@if (isLoading()) {
} @else if (showSeriesEmptyState()) {
video_library

#### No episodes available

This series is listed by your provider, but no seasons or episodes are available to play.

} @else if (!selectedSeason) {
@for ( season of seasons() | keyvalue: compareSeasons; track $index ) {
}
} @else if (showSeasonEmptyState()) {
video_library

#### This season is empty

This season is listed by your provider, but no playable episodes are available.

} @else { @if (viewMode() === 'grid') {
@for (episode of seasons()[selectedSeason]; track $index) { @let episodeInfo = getEpisodeInfo(episode);
@if (episodeInfo?.movie_image) { } @else {
play_circle_outline
} @if (getEpisodeProgress(episode) > 0) { @if ( getEpisodePositionText(episode); as time ) {
{{ time }}
} }
@if (isElectron()) { @if (isEpisodeDownloaded(episode)) {
} @else if ( isEpisodeDownloading(episode) ) {
} @else {
} }
@if (isEpisodeLaunching(episode)) { } @else { {{ isEpisodeActiveExternal(episode) ? 'equalizer' : 'play_arrow' }} }
{{ episode.episode_num }}

#### {{ episode.episode_num }}. {{ episode.title }}

@if (episodeInfo?.plot) {

{{ episodeInfo?.plot }}

} @if (episodeInfo?.duration) { {{ episodeInfo?.duration }} }
}
} @else {
@for (episode of seasons()[selectedSeason]; track $index) { @let episodeInfo = getEpisodeInfo(episode);
{{ episode.episode_num }}

#### {{ episode.title }} @if (isEpisodeWatched(episode)) { check_circle }

@if (episodeInfo?.duration) { {{ episodeInfo?.duration }} } @if ( getEpisodePositionText(episode); as time ) { {{ time }} }
@if (episodeInfo?.plot) {

{{ episodeInfo?.plot }}

} @if (getEpisodeProgress(episode) > 0) {
}
@if (isElectron()) { @if (isEpisodeDownloaded(episode)) {
} @else if (isEpisodeDownloading(episode)) {
} @else {
} }
}
} }