@if (filteredBooks$ | async; as books) {
{{ t('seriesDetailsTab') }} {{ t('bookListTab') }} @if (books[0]; as firstBook) {
@if (coverBook$ | async; as coverBook) {
}

{{ seriesTitle$ | async }}

@if (allAuthors$ | async; as authors) {

@for (author of authors; track $index; let isLast = $last) { {{ author }} @if (!isLast) {, } }

} @if (allCategories$ | async; as categories) { @if (categories.length) {
@for (category of categories; track category) { {{ category }} }
} } @if (seriesStats$ | async; as stats) { @if (stats.avgPersonalRating != null || stats.avgGoodreads != null || stats.avgAmazon != null || stats.avgHardcover != null) {
@if (stats.avgPersonalRating != null) {
{{ stats.avgPersonalRating | number:'1.1-1' }}/10 {{ t('stats.avgPersonalRating') }}
} @if (stats.avgGoodreads != null) {
{{ getRatingPercent(stats.avgGoodreads) }}% {{ t('stats.avgGoodreads') }}
} @if (stats.avgAmazon != null) {
{{ getRatingPercent(stats.avgAmazon) }}% {{ t('stats.avgAmazon') }}
} @if (stats.avgHardcover != null) {
{{ getRatingPercent(stats.avgHardcover) }}% {{ t('stats.avgHardcover') }}
}
} }
@if (nextUp$ | async; as nextUp) {
{{ nextUp.isReading ? t('continueReading') : t('nextUp') }} {{ nextUp.book.metadata?.title || '' }} @if (nextUp.isReading && nextUp.progressPercent != null) {
{{ nextUp.progressPercent }}%
}
} @if (readStatusBreakdown$ | async; as segments) { @if (segments.length) {
@for (seg of segments; track seg.status) {
}
@for (seg of segments; track seg.status) { {{ getStatusLabel(seg.status) }} ({{ seg.count }}) } @let readProg = seriesReadProgress$ | async; @if (readProg) { {{ t('readPercent', { progress: readProg }) }} }
} }
{{ t('synopsis') }}
@if (isExpanded || isOverflowing) { }

{{ t('booksInSeries') }}

@for (book of books; track book; let i = $index) {
} @if (books.length === 0) {
{{ t('noBooksFound') }}
}
}
@for (book of books; track book.id; let i = $index) {
{{ book.metadata?.seriesNumber != null ? '#' + book.metadata?.seriesNumber : '-' }}
{{ book.metadata?.title || '' }}
@if (book.metadata?.authors?.length) { {{ book.metadata!.authors!.join(', ') }} } @if (book.metadata?.publishedDate; as date) { · {{ date }} } @if (book.metadata?.pageCount; as pages) { · {{ pages }} {{ t('listPages') }} }
@if (getBookProgress(book); as progress) {
{{ progress }}%
} @if (book.personalRating) {
@for (star of [1,2,3,4,5]; track star) { } {{ book.personalRating }}/10
}
{{ getStatusLabel(book.readStatus) }} @if (book.primaryFile?.bookType; as bookType) { {{ bookType }} }
} @if (books.length === 0) {
{{ t('noBooksFound') }}
}
@if (selectedBooks.size > 0) { @if (userService.userState$ | async; as userState) { } }
} @else {

{{ t('loadingSeriesDetails') }}

}