{ "version": 3, "sources": ["src/app/volume-detail/volume-detail.component.ts", "src/app/volume-detail/volume-detail.component.html"], "sourcesContent": ["import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n inject,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {AsyncPipe, DOCUMENT, NgStyle, NgClass, Location} from \"@angular/common\";\r\nimport {ActivatedRoute, Router, RouterLink} from \"@angular/router\";\r\nimport {ImageService} from \"../_services/image.service\";\r\nimport {SeriesService} from \"../_services/series.service\";\r\nimport {LibraryService} from \"../_services/library.service\";\r\nimport {ThemeService} from \"../_services/theme.service\";\r\nimport {DownloadEvent, DownloadService} from \"../shared/_services/download.service\";\r\nimport {BulkSelectionService} from \"../cards/bulk-selection.service\";\r\nimport {ReaderService} from \"../_services/reader.service\";\r\nimport {AccountService} from \"../_services/account.service\";\r\nimport {\r\n NgbDropdown,\r\n NgbDropdownItem,\r\n NgbDropdownMenu,\r\n NgbDropdownToggle,\r\n NgbModal,\r\n NgbNav,\r\n NgbNavChangeEvent,\r\n NgbNavContent,\r\n NgbNavItem,\r\n NgbNavLink,\r\n NgbNavOutlet,\r\n NgbTooltip\r\n} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport {FilterUtilitiesService} from \"../shared/_services/filter-utilities.service\";\r\nimport {Chapter, LooseLeafOrDefaultNumber} from \"../_models/chapter\";\r\nimport {Series} from \"../_models/series\";\r\nimport {LibraryType} from \"../_models/library/library\";\r\nimport {forkJoin, map, Observable, tap} from \"rxjs\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {translate, TranslocoDirective} from \"@jsverse/transloco\";\r\nimport {FilterComparison} from \"../_models/metadata/v2/filter-comparison\";\r\nimport {FilterField} from '../_models/metadata/v2/filter-field';\r\nimport {AgeRating} from '../_models/metadata/age-rating';\r\nimport {Volume} from \"../_models/volume\";\r\nimport {VolumeService} from \"../_services/volume.service\";\r\nimport {LoadingComponent} from \"../shared/loading/loading.component\";\r\nimport {DetailsTabComponent} from \"../_single-module/details-tab/details-tab.component\";\r\nimport {ReadMoreComponent} from \"../shared/read-more/read-more.component\";\r\nimport {Person} from \"../_models/metadata/person\";\r\nimport {IHasCast} from \"../_models/common/i-has-cast\";\r\nimport {EntityTitleComponent} from \"../cards/entity-title/entity-title.component\";\r\nimport {VirtualScrollerModule} from \"@iharbeck/ngx-virtual-scroller\";\r\nimport {Action, ActionFactoryService, ActionItem} from \"../_services/action-factory.service\";\r\nimport {Breakpoint, UtilityService} from \"../shared/_services/utility.service\";\r\nimport {ChapterCardComponent} from \"../cards/chapter-card/chapter-card.component\";\r\nimport {\r\n EditVolumeModalComponent\r\n} from \"../_single-module/edit-volume-modal/edit-volume-modal.component\";\r\nimport {Genre} from \"../_models/metadata/genre\";\r\nimport {Tag} from \"../_models/tag\";\r\nimport {RelatedTabComponent} from \"../_single-modules/related-tab/related-tab.component\";\r\nimport {ReadingList} from \"../_models/reading-list\";\r\nimport {ReadingListService} from \"../_services/reading-list.service\";\r\nimport {BadgeExpanderComponent} from \"../shared/badge-expander/badge-expander.component\";\r\nimport {\r\n MetadataDetailRowComponent\r\n} from \"../series-detail/_components/metadata-detail-row/metadata-detail-row.component\";\r\nimport {DownloadButtonComponent} from \"../series-detail/_components/download-button/download-button.component\";\r\nimport {EVENTS, MessageHubService} from \"../_services/message-hub.service\";\r\nimport {CoverUpdateEvent} from \"../_models/events/cover-update-event\";\r\nimport {ChapterRemovedEvent} from \"../_models/events/chapter-removed-event\";\r\nimport {ActionService} from \"../_services/action.service\";\r\nimport {VolumeRemovedEvent} from \"../_models/events/volume-removed-event\";\r\nimport {CardActionablesComponent} from \"../_single-module/card-actionables/card-actionables.component\";\r\nimport {Device} from \"../_models/device/device\";\r\nimport {EditChapterModalComponent} from \"../_single-module/edit-chapter-modal/edit-chapter-modal.component\";\r\nimport {BulkOperationsComponent} from \"../cards/bulk-operations/bulk-operations.component\";\r\nimport {CoverImageComponent} from \"../_single-module/cover-image/cover-image.component\";\r\nimport {DefaultModalOptions} from \"../_models/default-modal-options\";\r\n\r\nenum TabID {\r\n\r\n Chapters = 'chapters-tab',\r\n Related = 'related-tab',\r\n Reviews = 'reviews-tab', // Only applicable for books\r\n Details = 'details-tab',\r\n}\r\n\r\ninterface VolumeCast extends IHasCast {\r\n characterLocked: boolean;\r\n characters: Array;\r\n coloristLocked: boolean;\r\n colorists: Array;\r\n coverArtistLocked: boolean;\r\n coverArtists: Array;\r\n editorLocked: boolean;\r\n editors: Array;\r\n imprintLocked: boolean;\r\n imprints: Array;\r\n inkerLocked: boolean;\r\n inkers: Array;\r\n languageLocked: boolean;\r\n lettererLocked: boolean;\r\n letterers: Array;\r\n locationLocked: boolean;\r\n locations: Array;\r\n pencillerLocked: boolean;\r\n pencillers: Array;\r\n publisherLocked: boolean;\r\n publishers: Array;\r\n teamLocked: boolean;\r\n teams: Array;\r\n translatorLocked: boolean;\r\n translators: Array;\r\n writerLocked: boolean;\r\n writers: Array;\r\n}\r\n\r\n@Component({\r\n selector: 'app-volume-detail',\r\n standalone: true,\r\n imports: [\r\n LoadingComponent,\r\n NgbNavOutlet,\r\n DetailsTabComponent,\r\n NgbNavItem,\r\n NgbNavLink,\r\n NgbNavContent,\r\n NgbNav,\r\n ReadMoreComponent,\r\n AsyncPipe,\r\n NgbDropdownItem,\r\n NgbDropdownMenu,\r\n NgbDropdown,\r\n NgbDropdownToggle,\r\n EntityTitleComponent,\r\n RouterLink,\r\n NgbTooltip,\r\n NgStyle,\r\n NgClass,\r\n TranslocoDirective,\r\n VirtualScrollerModule,\r\n ChapterCardComponent,\r\n RelatedTabComponent,\r\n BadgeExpanderComponent,\r\n MetadataDetailRowComponent,\r\n DownloadButtonComponent,\r\n CardActionablesComponent,\r\n BulkOperationsComponent,\r\n CoverImageComponent\r\n ],\r\n templateUrl: './volume-detail.component.html',\r\n styleUrl: './volume-detail.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VolumeDetailComponent implements OnInit {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly router = inject(Router);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n protected readonly imageService = inject(ImageService);\r\n private readonly volumeService = inject(VolumeService);\r\n private readonly seriesService = inject(SeriesService);\r\n private readonly libraryService = inject(LibraryService);\r\n private readonly themeService = inject(ThemeService);\r\n private readonly downloadService = inject(DownloadService);\r\n protected readonly bulkSelectionService = inject(BulkSelectionService);\r\n private readonly readerService = inject(ReaderService);\r\n protected readonly accountService = inject(AccountService);\r\n private readonly modalService = inject(NgbModal);\r\n private readonly filterUtilityService = inject(FilterUtilitiesService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly actionFactoryService = inject(ActionFactoryService);\r\n private readonly actionService = inject(ActionService);\r\n protected readonly utilityService = inject(UtilityService);\r\n private readonly readingListService = inject(ReadingListService);\r\n private readonly messageHub = inject(MessageHubService);\r\n private readonly location = inject(Location);\r\n\r\n\r\n protected readonly AgeRating = AgeRating;\r\n protected readonly TabID = TabID;\r\n protected readonly FilterField = FilterField;\r\n protected readonly Breakpoint = Breakpoint;\r\n\r\n @ViewChild('scrollingBlock') scrollingBlock: ElementRef | undefined;\r\n @ViewChild('companionBar') companionBar: ElementRef | undefined;\r\n\r\n isLoading: boolean = true;\r\n coverImage: string = '';\r\n volumeId: number = 0;\r\n seriesId: number = 0;\r\n libraryId: number = 0;\r\n volume: Volume | null = null;\r\n series: Series | null = null;\r\n libraryType: LibraryType | null = null;\r\n activeTabId = TabID.Chapters;\r\n readingLists: ReadingList[] = [];\r\n mobileSeriesImgBackground: string | undefined;\r\n downloadInProgress: boolean = false;\r\n\r\n volumeActions: Array> = this.actionFactoryService.getVolumeActions(this.handleVolumeAction.bind(this));\r\n chapterActions: Array> = this.actionFactoryService.getChapterActions(this.handleChapterActionCallback.bind(this));\r\n\r\n bulkActionCallback = async (action: ActionItem, _: any) => {\r\n if (this.volume === null) {\r\n return;\r\n }\r\n const selectedChapterIndexes = this.bulkSelectionService.getSelectedCardsForSource('chapter');\r\n const selectedChapterIds = this.volume.chapters.filter((_chapter, index: number) => {\r\n return selectedChapterIndexes.includes(index + '');\r\n });\r\n\r\n switch (action.action) {\r\n case Action.AddToReadingList:\r\n this.actionService.addMultipleToReadingList(this.seriesId, [], selectedChapterIds, (success) => {\r\n if (success) this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.MarkAsRead:\r\n this.actionService.markMultipleAsRead(this.seriesId, [], selectedChapterIds, () => {\r\n this.bulkSelectionService.deselectAll();\r\n this.loadVolume();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.MarkAsUnread:\r\n this.actionService.markMultipleAsUnread(this.seriesId, [], selectedChapterIds, () => {\r\n this.bulkSelectionService.deselectAll();\r\n this.loadVolume();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.SendTo:\r\n const device = (action._extra!.data as Device);\r\n this.actionService.sendToDevice(selectedChapterIds.map(c => c.id), device);\r\n this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n break;\r\n case Action.Delete:\r\n await this.actionService.deleteMultipleChapters(this.seriesId, selectedChapterIds, () => {\r\n // No need to update the page as the backend will spam volume/chapter deletions\r\n this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * This is the download we get from download service.\r\n */\r\n download$: Observable | null = null;\r\n currentlyReadingChapter: Chapter | undefined = undefined;\r\n\r\n maxAgeRating: AgeRating = AgeRating.Unknown;\r\n volumeCast: VolumeCast = {\r\n characterLocked: false,\r\n characters: [],\r\n coloristLocked: false,\r\n colorists: [],\r\n coverArtistLocked: false,\r\n coverArtists: [],\r\n editorLocked: false,\r\n editors: [],\r\n imprintLocked: false,\r\n imprints: [],\r\n inkerLocked: false,\r\n inkers: [],\r\n languageLocked: false,\r\n lettererLocked: false,\r\n letterers: [],\r\n locationLocked: false,\r\n locations: [],\r\n pencillerLocked: false,\r\n pencillers: [],\r\n publisherLocked: false,\r\n publishers: [],\r\n teamLocked: false,\r\n teams: [],\r\n translatorLocked: false,\r\n translators: [],\r\n writerLocked: false,\r\n writers: []\r\n };\r\n tags: Array = [];\r\n genres: Array = [];\r\n\r\n\r\n get ContinuePointTitle() {\r\n if (this.currentlyReadingChapter === undefined || !this.volume || this.volume.chapters.length <= 1) return '';\r\n\r\n if (this.currentlyReadingChapter.isSpecial) {\r\n return this.currentlyReadingChapter.title;\r\n }\r\n\r\n let chapterLocaleKey = 'common.chapter-num-shorthand';\r\n switch (this.libraryType) {\r\n case LibraryType.ComicVine:\r\n case LibraryType.Comic:\r\n chapterLocaleKey = 'common.issue-num-shorthand';\r\n break;\r\n case LibraryType.Book:\r\n case LibraryType.LightNovel:\r\n chapterLocaleKey = 'common.book-num-shorthand';\r\n break;\r\n case LibraryType.Manga:\r\n case LibraryType.Images:\r\n chapterLocaleKey = 'common.chapter-num-shorthand';\r\n break;\r\n }\r\n\r\n if (this.currentlyReadingChapter.minNumber === LooseLeafOrDefaultNumber) {\r\n return translate(chapterLocaleKey, {num: this.volume.chapters[0].minNumber});\r\n }\r\n\r\n return translate(chapterLocaleKey, {num: this.currentlyReadingChapter.minNumber});\r\n }\r\n\r\n\r\n get ScrollingBlockHeight() {\r\n if (this.scrollingBlock === undefined) return 'calc(var(--vh)*100)';\r\n const navbar = this.document.querySelector('.navbar') as HTMLElement;\r\n if (navbar === null) return 'calc(var(--vh)*100)';\r\n\r\n const companionHeight = this.companionBar?.nativeElement.offsetHeight || 0;\r\n const navbarHeight = navbar.offsetHeight;\r\n const totalHeight = companionHeight + navbarHeight + 21; //21px to account for padding\r\n return 'calc(var(--vh)*100 - ' + totalHeight + 'px)';\r\n }\r\n\r\n\r\n ngOnInit() {\r\n const seriesId = this.route.snapshot.paramMap.get('seriesId');\r\n const libraryId = this.route.snapshot.paramMap.get('libraryId');\r\n const volumeId = this.route.snapshot.paramMap.get('volumeId');\r\n if (seriesId === null || libraryId === null || volumeId === null) {\r\n this.router.navigateByUrl('/home');\r\n return;\r\n }\r\n\r\n this.mobileSeriesImgBackground = getComputedStyle(document.documentElement)\r\n .getPropertyValue('--mobile-series-img-background').trim();\r\n this.seriesId = parseInt(seriesId, 10);\r\n this.volumeId = parseInt(volumeId, 10);\r\n this.libraryId = parseInt(libraryId, 10);\r\n this.coverImage = this.imageService.getVolumeCoverImage(this.volumeId);\r\n\r\n this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\r\n if (event.event === EVENTS.CoverUpdate) {\r\n const coverUpdateEvent = event.payload as CoverUpdateEvent;\r\n if (coverUpdateEvent.entityType === 'volume' && coverUpdateEvent.id === this.volumeId) {\r\n this.themeService.refreshColorScape('volume', coverUpdateEvent.id).subscribe();\r\n }\r\n } else if (event.event === EVENTS.ChapterRemoved) {\r\n const removedEvent = event.payload as ChapterRemovedEvent;\r\n if (removedEvent.seriesId !== this.seriesId) return;\r\n\r\n // remove the chapter from the tab\r\n if (this.volume) {\r\n this.volume.chapters = this.volume.chapters.filter(c => c.id !== removedEvent.chapterId);\r\n this.cdRef.detectChanges();\r\n }\r\n } else if (event.event === EVENTS.VolumeRemoved) {\r\n const removedEvent = event.payload as VolumeRemovedEvent;\r\n if (removedEvent.volumeId !== this.volumeId) return;\r\n\r\n // remove the chapter from the tab\r\n this.navigateToSeries();\r\n }\r\n });\r\n\r\n forkJoin({\r\n series: this.seriesService.getSeries(this.seriesId),\r\n volume: this.volumeService.getVolumeMetadata(this.volumeId),\r\n libraryType: this.libraryService.getLibraryType(this.libraryId)\r\n }).subscribe(results => {\r\n\r\n if (results.volume === null) {\r\n this.router.navigateByUrl('/home');\r\n return;\r\n }\r\n\r\n this.series = results.series;\r\n this.volume = results.volume;\r\n this.libraryType = results.libraryType;\r\n\r\n this.themeService.setColorScape(this.volume!.primaryColor, this.volume!.secondaryColor);\r\n\r\n // Set up the download in progress\r\n this.download$ = this.downloadService.activeDownloads$.pipe(takeUntilDestroyed(this.destroyRef), map((events) => {\r\n return this.downloadService.mapToEntityType(events, this.volume!);\r\n }));\r\n\r\n this.route.fragment.pipe(tap(frag => {\r\n if (frag !== null && this.activeTabId !== (frag as TabID)) {\r\n this.activeTabId = frag as TabID;\r\n this.updateUrl(this.activeTabId);\r\n this.cdRef.markForCheck();\r\n }\r\n }), takeUntilDestroyed(this.destroyRef)).subscribe();\r\n\r\n if (this.volume.chapters.length === 1) {\r\n this.readingListService.getReadingListsForChapter(this.volume.chapters[0].id).subscribe(lists => {\r\n this.readingLists = lists;\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n // Calculate all the writes/artists for all chapters\r\n this.volumeCast.writers = this.volume.chapters\r\n .flatMap(c => c.writers) // Flatten the array of writers from all chapters\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name) // Check for distinct names\r\n );\r\n\r\n this.volumeCast.coverArtists = this.volume.chapters\r\n .flatMap(c => c.coverArtists)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n\r\n this.volumeCast.characters = this.volume.chapters\r\n .flatMap(c => c.characters)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n this.volumeCast.colorists = this.volume.chapters\r\n .flatMap(c => c.colorists)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n this.volumeCast.editors = this.volume.chapters\r\n .flatMap(c => c.editors)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n this.volumeCast.imprints = this.volume.chapters\r\n .flatMap(c => c.imprints)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n this.volumeCast.inkers = this.volume.chapters\r\n .flatMap(c => c.inkers)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n this.volumeCast.letterers = this.volume.chapters\r\n .flatMap(c => c.letterers)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n this.volumeCast.locations = this.volume.chapters\r\n .flatMap(c => c.locations)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n\r\n this.volumeCast.teams = this.volume.chapters\r\n .flatMap(c => c.teams)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n\r\n this.volumeCast.translators = this.volume.chapters\r\n .flatMap(c => c.translators)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n\r\n this.volumeCast.publishers = this.volume.chapters\r\n .flatMap(c => c.publishers)\r\n .filter((person, index, self) =>\r\n index === self.findIndex(w => w.name === person.name)\r\n );\r\n\r\n this.genres = this.volume.chapters\r\n .flatMap(c => c.genres)\r\n .filter((tag, index, self) =>\r\n index === self.findIndex(w => w.title === tag.title)\r\n );\r\n\r\n this.tags = this.volume.chapters\r\n .flatMap(c => c.tags)\r\n .filter((tag, index, self) =>\r\n index === self.findIndex(w => w.title === tag.title)\r\n );\r\n\r\n this.maxAgeRating = Math.max(\r\n ...this.volume.chapters\r\n .flatMap(c => c.ageRating)\r\n );\r\n\r\n this.setContinuePoint();\r\n\r\n\r\n this.isLoading = false;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n loadVolume() {\r\n this.volumeService.getVolumeMetadata(this.volumeId).subscribe(v => {\r\n this.volume = v;\r\n this.setContinuePoint();\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n readVolume(incognitoMode: boolean = false) {\r\n if (!this.volume) return;\r\n\r\n this.readerService.readVolume(this.libraryId, this.seriesId, this.volume, incognitoMode);\r\n }\r\n\r\n openEditModal() {\r\n const ref = this.modalService.open(EditVolumeModalComponent, DefaultModalOptions);\r\n ref.componentInstance.volume = this.volume;\r\n ref.componentInstance.libraryType = this.libraryType;\r\n ref.componentInstance.libraryId = this.libraryId;\r\n ref.componentInstance.seriesId = this.series!.id;\r\n\r\n ref.closed.subscribe(_ => this.setContinuePoint());\r\n }\r\n\r\n openEditChapterModal(chapter: Chapter) {\r\n const ref = this.modalService.open(EditChapterModalComponent, DefaultModalOptions);\r\n ref.componentInstance.chapter = chapter;\r\n ref.componentInstance.libraryType = this.libraryType;\r\n ref.componentInstance.libraryId = this.libraryId;\r\n ref.componentInstance.seriesId = this.series!.id;\r\n\r\n ref.closed.subscribe(_ => this.setContinuePoint());\r\n\r\n }\r\n\r\n onNavChange(event: NgbNavChangeEvent) {\r\n this.bulkSelectionService.deselectAll();\r\n this.updateUrl(event.nextId);\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateUrl(activeTab: TabID) {\r\n const tokens = this.location.path().split('#');\r\n const newUrl = `${tokens[0]}#${activeTab}`;\r\n this.location.replaceState(newUrl)\r\n }\r\n\r\n openPerson(field: FilterField, value: number) {\r\n this.filterUtilityService.applyFilter(['all-series'], field, FilterComparison.Equal, `${value}`).subscribe();\r\n }\r\n\r\n performAction(action: ActionItem) {\r\n if (typeof action.callback === 'function') {\r\n action.callback(action, this.volume!);\r\n }\r\n }\r\n\r\n async handleChapterActionCallback(action: ActionItem, chapter: Chapter) {\r\n switch (action.action) {\r\n case(Action.MarkAsRead):\r\n this.actionService.markChapterAsRead(this.libraryId, this.seriesId, chapter, _ => this.setContinuePoint());\r\n break;\r\n case(Action.MarkAsUnread):\r\n this.actionService.markChapterAsUnread(this.libraryId, this.seriesId, chapter, _ => this.setContinuePoint());\r\n break;\r\n case(Action.Edit):\r\n this.openEditChapterModal(chapter);\r\n break;\r\n case(Action.AddToReadingList):\r\n this.actionService.addChapterToReadingList(chapter, this.seriesId, () => {/* No Operation */ });\r\n break;\r\n case(Action.IncognitoRead):\r\n this.readerService.readChapter(this.libraryId, this.seriesId, chapter, true);\r\n break;\r\n case(Action.Delete):\r\n await this.actionService.deleteChapter(chapter.id, (res) => {\r\n if (!res) return;\r\n this.navigateToSeries();\r\n });\r\n break;\r\n case (Action.SendTo):\r\n const device = (action._extra!.data as Device);\r\n this.actionService.sendToDevice([chapter.id], device);\r\n break;\r\n }\r\n }\r\n\r\n async handleVolumeAction(action: ActionItem) {\r\n switch (action.action) {\r\n case Action.Delete:\r\n await this.actionService.deleteVolume(this.volumeId, (res) => {\r\n if (!res) return;\r\n this.navigateToSeries();\r\n });\r\n break;\r\n case Action.MarkAsRead:\r\n this.actionService.markVolumeAsRead(this.seriesId, this.volume!, _ => {\r\n this.volume!.pagesRead = this.volume!.pages;\r\n this.setContinuePoint();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.MarkAsUnread:\r\n this.actionService.markVolumeAsUnread(this.seriesId, this.volume!, _ => {\r\n this.volume!.pagesRead = 0;\r\n this.setContinuePoint();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.AddToReadingList:\r\n break;\r\n case Action.Download:\r\n if (this.downloadInProgress) return;\r\n this.downloadService.download('volume', this.volume!, (d) => {\r\n this.downloadInProgress = !!d;\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.IncognitoRead:\r\n this.readVolume(true);\r\n break;\r\n case Action.SendTo:\r\n const chapterIds = this.volume!.chapters.map(c => c.id);\r\n const device = (action._extra!.data as Device);\r\n this.actionService.sendToDevice(chapterIds, device);\r\n break;\r\n case Action.Edit:\r\n this.openEditModal();\r\n break;\r\n }\r\n }\r\n\r\n openFilter(field: FilterField, value: string | number) {\r\n this.filterUtilityService.applyFilter(['all-series'], field, FilterComparison.Equal, `${value}`).subscribe();\r\n }\r\n\r\n\r\n switchTabsToDetail() {\r\n this.activeTabId = TabID.Details;\r\n this.cdRef.markForCheck();\r\n setTimeout(() => {\r\n const tabElem = this.document.querySelector('#details-tab');\r\n if (tabElem) {\r\n (tabElem as HTMLLIElement).scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\r\n }\r\n }, 10);\r\n }\r\n\r\n navigateToSeries() {\r\n this.router.navigate(['library', this.libraryId, 'series', this.seriesId]);\r\n }\r\n\r\n setContinuePoint() {\r\n if (!this.volume) return;\r\n\r\n const chaptersWithProgress = this.volume.chapters.filter(c => c.pagesRead < c.pages);\r\n if (chaptersWithProgress.length > 0 && this.volume.chapters.length > 1) {\r\n this.currentlyReadingChapter = chaptersWithProgress[0];\r\n this.cdRef.markForCheck();\r\n } else {\r\n this.currentlyReadingChapter = undefined;\r\n }\r\n }\r\n}\r\n", "\r\n\r\n \r\n\r\n
\r\n\r\n @if (volume && series && libraryType !== null) {\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

\r\n {{series.name}}\r\n

\r\n
\r\n \r\n {{t('volume-num')}}\r\n \r\n \r\n
\r\n\r\n 0\"\r\n [readingTimeEntity]=\"volume\"\r\n [libraryType]=\"libraryType\"\r\n [mangaFormat]=\"series.format\">\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n @if (accountService.isAdmin$ | async) {\r\n
\r\n \r\n
\r\n }\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n = Breakpoint.Desktop ? 585 : 250\">\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{t('writers-title')}}\r\n
\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n {{t('cover-artists-title')}}\r\n
\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{t('genres-title')}}\r\n
\r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {{t('tags-title')}}\r\n
\r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n }\r\n\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n"], "mappings": "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", "names": ["$item", "pagesRead", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openEditModal", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "t_r4", "item_r6", "_r5", "$implicit", "openPerson", "FilterField", "Writers", "id", "\u0275\u0275text", "\u0275\u0275textInterpolate", "name", "item_r8", "_r7", "CoverArtist", "item_r10", "_r9", "openFilter", "Genres", "title", "item_r12", "_r11", "Tags", "$event", "\u0275$index_171_r14", "_r13", "$index", "scroll_r15", "\u0275\u0275reference", "bulkSelectionService", "handleCardSelection", "viewPortInfo", "startIndexWithBuffer", "volume", "chapters", "length", "item_r16", "seriesId", "libraryId", "libraryType", "chapterActions", "isCardSelected", "\u0275\u0275repeaterCreate", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_78_Defer_0_For_5_Template", "_forTrack0", "scrollingBlock_r17", "\u0275\u0275repeater", "viewPortItems", "\u0275\u0275template", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_78_Defer_0_Template", "\u0275\u0275defer", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_78_Defer_1_DepsFn", "\u0275\u0275deferPrefetchOnIdle", "\u0275\u0275deferWhen", "activeTabId", "TabID", "Chapters", "readingLists", "VolumeDetailComponent_ng_container_0_Conditional_4_Conditional_79_ng_template_3_Defer_0_Template", "VolumeDetailComponent_ng_container_0_Conditional_4_Conditional_79_ng_template_3_Defer_1_DepsFn", "Related", "VolumeDetailComponent_ng_container_0_Conditional_4_Conditional_79_ng_template_3_Template", "volumeCast", "genres", "tags", "language", "series", "format", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_83_Defer_0_Template", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_83_Defer_1_DepsFn", "Details", "_r1", "readVolume", "VolumeDetailComponent_ng_container_0_Conditional_4_Conditional_29_Template", "performAction", "switchTabsToDetail", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_45_Template", "\u0275\u0275templateRefExtractor", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_52_Template", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_61_Template", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_68_Template", "\u0275\u0275twoWayListener", "i0", "\u0275\u0275twoWayBindingSet", "onNavChange", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_78_Template", "VolumeDetailComponent_ng_container_0_Conditional_4_Conditional_79_Template", "VolumeDetailComponent_ng_container_0_Conditional_4_ng_template_83_Template", "mobileSeriesImgBackground", "imageService", "getVolumeCoverImage", "ContinuePointTitle", "\u0275\u0275propertyInterpolate2", "\u0275\u0275textInterpolate1", "maxAgeRating", "\u0275\u0275classMapInterpolate1", "\u0275\u0275conditional", "\u0275\u0275pipeBind1", "accountService", "isAdmin$", "volumeActions", "minNumber", "download$", "summary", "utilityService", "getActiveBreakpoint", "Breakpoint", "Desktop", "writers", "coverArtists", "\u0275\u0275twoWayProperty", "formatChapterName", "nav_r18", "\u0275\u0275elementContainerStart", "VolumeDetailComponent_ng_container_0_Conditional_4_Template", "bulkActionCallback", "\u0275\u0275pureFunction1", "_c2", "ScrollingBlockHeight", "isLoading", "VolumeDetailComponent", "constructor", "document", "inject", "DOCUMENT", "route", "ActivatedRoute", "router", "Router", "cdRef", "ChangeDetectorRef", "ImageService", "volumeService", "VolumeService", "seriesService", "SeriesService", "libraryService", "LibraryService", "themeService", "ThemeService", "downloadService", "DownloadService", "BulkSelectionService", "readerService", "ReaderService", "AccountService", "modalService", "NgbModal", "filterUtilityService", "FilterUtilitiesService", "destroyRef", "DestroyRef", "actionFactoryService", "ActionFactoryService", "actionService", "ActionService", "UtilityService", "readingListService", "ReadingListService", "messageHub", "MessageHubService", "location", "Location", "AgeRating", "coverImage", "volumeId", "downloadInProgress", "getVolumeActions", "handleVolumeAction", "bind", "getChapterActions", "handleChapterActionCallback", "action", "_", "__async", "selectedChapterIndexes", "getSelectedCardsForSource", "selectedChapterIds", "filter", "_chapter", "index", "includes", "Action", "AddToReadingList", "addMultipleToReadingList", "success", "deselectAll", "markForCheck", "MarkAsRead", "markMultipleAsRead", "loadVolume", "MarkAsUnread", "markMultipleAsUnread", "SendTo", "device", "_extra", "data", "sendToDevice", "map", "c", "Delete", "deleteMultipleChapters", "currentlyReadingChapter", "undefined", "Unknown", "characterLocked", "characters", "coloristLocked", "colorists", "coverArtistLocked", "editorLocked", "editors", "imprintLocked", "imprints", "inkerLocked", "inkers", "languageLocked", "lettererLocked", "letterers", "locationLocked", "locations", "pencillerLocked", "pencillers", "publisherLocked", "publishers", "teamLocked", "teams", "translatorLocked", "translators", "writerLocked", "isSpecial", "chapterLocaleKey", "LibraryType", "ComicVine", "Comic", "Book", "LightNovel", "Manga", "Images", "LooseLeafOrDefaultNumber", "translate", "num", "scrollingBlock", "navbar", "querySelector", "companionHeight", "companionBar", "nativeElement", "offsetHeight", "navbarHeight", "ngOnInit", "snapshot", "paramMap", "get", "navigateByUrl", "getComputedStyle", "documentElement", "getPropertyValue", "trim", "parseInt", "messages$", "pipe", "takeUntilDestroyed", "subscribe", "event", "EVENTS", "CoverUpdate", "coverUpdateEvent", "payload", "entityType", "refreshColorScape", "ChapterRemoved", "removedEvent", "chapterId", "detectChanges", "VolumeRemoved", "navigateToSeries", "forkJoin", "getSeries", "getVolumeMetadata", "getLibraryType", "results", "setColorScape", "primaryColor", "secondaryColor", "activeDownloads$", "events", "mapToEntityType", "fragment", "tap", "frag", "updateUrl", "getReadingListsForChapter", "lists", "flatMap", "person", "self", "findIndex", "w", "tag", "Math", "max", "ageRating", "setContinuePoint", "v", "incognitoMode", "ref", "open", "EditVolumeModalComponent", "DefaultModalOptions", "componentInstance", "closed", "openEditChapterModal", "chapter", "EditChapterModalComponent", "nextId", "activeTab", "newUrl", "path", "split", "replaceState", "field", "value", "applyFilter", "FilterComparison", "Equal", "callback", "markChapterAsRead", "markChapterAsUnread", "Edit", "addChapterToReadingList", "IncognitoRead", "readChapter", "deleteChapter", "res", "deleteVolume", "markVolumeAsRead", "pages", "markVolumeAsUnread", "Download", "download", "d", "chapterIds", "setTimeout", "tabElem", "scrollIntoView", "behavior", "block", "inline", "navigate", "chaptersWithProgress", "selectors", "viewQuery", "rf", "ctx", "VolumeDetailComponent_ng_container_0_Template", "LoadingComponent", "NgbNavOutlet", "NgbNavItem", "NgbNavLink", "NgbNavContent", "NgbNav", "ReadMoreComponent", "AsyncPipe", "NgbDropdownItem", "NgbDropdownMenu", "NgbDropdown", "NgbDropdownToggle", "EntityTitleComponent", "RouterLink", "NgbTooltip", "NgStyle", "NgClass", "TranslocoDirective", "VirtualScrollerModule", "BadgeExpanderComponent", "MetadataDetailRowComponent", "DownloadButtonComponent", "CardActionablesComponent", "BulkOperationsComponent", "CoverImageComponent", "styles", "changeDetection"] }