@if (entityType$ | async; as entityType) {

@if (entityType === EntityType.ALL_BOOKS) { @if (currentFilterLabel && rawFilterParamFromUrl) { {{ currentFilterLabel }} } @else if (isFilterActive || hasSearchTerm) { {{ computedFilterLabel }} } @else { {{ t('labels.allBooks') }} } } @else if (entityType === EntityType.UNSHELVED) { {{ (isFilterActive || hasSearchTerm) ? t('labels.unshelvedBooksFiltered') : t('labels.unshelvedBooks') }} } @else { {{ entityType }}: {{ (entity$ | async)?.name }}{{ (isFilterActive || hasSearchTerm) ? ' ' + t('labels.filteredSuffix') : '' }} }

@if (seriesCollapseFilter.isSeriesCollapsed && (bookState$ | async)?.books; as books) {

{{ t('labels.seriesCollapsedInfo', { count: books.length, itemWord: books.length === 1 ? t('labels.item') : t('labels.items') }) }}

}
@if (userService.userState$ | async; as userState) { @if (entityType !== EntityType.ALL_BOOKS && entityType !== EntityType.UNSHELVED && (userState.user!.permissions.admin || userState.user!.permissions.canManageLibrary)) {
} } }
@if (isFilterActive) { } @if (currentViewMode === 'table') {
}
@if (isMobile) {
} @else {
{{ coverScalePreferenceService.scaleFactor.toFixed(2) }}x
}
@if (bookTitle) { }
@if (bookState$ | async; as bookState) {
@if (!bookState?.loaded && !bookState?.error) {
}
@if (bookState?.error) {

{{ entityType === EntityType.LIBRARY ? t('labels.failedLibrary') : t('labels.failedShelf') }}

} @if (!bookState?.error && bookState?.loaded && bookState?.books?.length === 0) {

{{ t('labels.noBooks') }}

} @if (bookState?.books; as books) { @if (currentViewMode === 'table' && books.length > 0) { } @if (currentViewMode === 'grid') {
@for (book of scroll.viewPortItems; let i = $index; track book.id) {
}
} } @if (userService.userState$ | async; as userState) { }
}
@if (this.showFilter) {
}