{"version":3,"sources":["src/app/cards/next-expected-card/next-expected-card.component.ts","src/app/cards/next-expected-card/next-expected-card.component.html","src/app/cards/volume-card/volume-card.component.ts","src/app/cards/volume-card/volume-card.component.html","node_modules/ngx-stars/fesm2020/ngx-stars.mjs","src/app/series-detail/_components/rating-modal/rating-modal.component.ts","src/app/series-detail/_components/rating-modal/rating-modal.component.html","src/app/series-detail/_components/external-rating/external-rating.component.ts","src/app/series-detail/_components/external-rating/external-rating.component.html","src/app/series-detail/_components/series-detail/series-detail.component.ts","src/app/series-detail/_components/series-detail/series-detail.component.html"],"sourcesContent":["import {ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input, OnInit} from '@angular/core';\nimport {ImageComponent} from \"../../shared/image/image.component\";\nimport {NextExpectedChapter} from \"../../_models/series-detail/next-expected-chapter\";\nimport {UtcToLocalTimePipe} from \"../../_pipes/utc-to-local-time.pipe\";\nimport {SafeHtmlPipe} from \"../../_pipes/safe-html.pipe\";\nimport {translate, TranslocoDirective} from \"@jsverse/transloco\";\n\n@Component({\n selector: 'app-next-expected-card',\n standalone: true,\n imports: [ImageComponent, SafeHtmlPipe, TranslocoDirective],\n templateUrl: './next-expected-card.component.html',\n styleUrl: './next-expected-card.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NextExpectedCardComponent implements OnInit {\n private readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * Card item url. Will internally handle error and missing covers\n */\n @Input() imageUrl = '';\n /**\n * This is the entity we are representing. It will be returned if an action is executed.\n */\n @Input({required: true}) entity!: NextExpectedChapter;\n title: string = '';\n\n ngOnInit(): void {\n if (this.entity.expectedDate) {\n const utcPipe = new UtcToLocalTimePipe();\n this.title = translate('next-expected-card.title', {date: utcPipe.transform(this.entity.expectedDate, 'shortDate')});\n }\n this.cdRef.markForCheck();\n }\n\n}\n","\n
\n
\n \n\n
\n
\n\n @if (entity.title | safeHtml; as info) {\n @if (info !== '') {\n
\n
\n
{{t('upcoming-title')}}
\n \n
\n
\n }\n }\n\n
\n \n {{title}}\n \n
\n\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter, HostListener,\n inject,\n Input, OnInit,\n Output\n} from '@angular/core';\nimport {CardActionablesComponent} from \"../../_single-module/card-actionables/card-actionables.component\";\nimport {DecimalPipe} from \"@angular/common\";\nimport {DefaultValuePipe} from \"../../_pipes/default-value.pipe\";\nimport {DownloadIndicatorComponent} from \"../download-indicator/download-indicator.component\";\nimport {EntityTitleComponent} from \"../entity-title/entity-title.component\";\nimport {ImageComponent} from \"../../shared/image/image.component\";\nimport {NgbProgressbar, NgbTooltip} from \"@ng-bootstrap/ng-bootstrap\";\nimport {Router, RouterLink} from \"@angular/router\";\nimport {Select2Module} from \"ng-select2-component\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {ImageService} from \"../../_services/image.service\";\nimport {BulkSelectionService} from \"../bulk-selection.service\";\nimport {DownloadEvent, DownloadService} from \"../../shared/_services/download.service\";\nimport {EVENTS, MessageHubService} from \"../../_services/message-hub.service\";\nimport {AccountService} from \"../../_services/account.service\";\nimport {ScrollService} from \"../../_services/scroll.service\";\nimport {Action, ActionFactoryService, ActionItem} from \"../../_services/action-factory.service\";\nimport {ReaderService} from \"../../_services/reader.service\";\nimport {Observable} from \"rxjs\";\nimport {User} from \"../../_models/user\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {filter, map} from \"rxjs/operators\";\nimport {UserProgressUpdateEvent} from \"../../_models/events/user-progress-update-event\";\nimport {Volume} from \"../../_models/volume\";\nimport {UtilityService} from \"../../shared/_services/utility.service\";\nimport {LibraryType} from \"../../_models/library/library\";\nimport {RelationshipPipe} from \"../../_pipes/relationship.pipe\";\nimport {Device} from \"../../_models/device/device\";\nimport {ActionService} from \"../../_services/action.service\";\n\n@Component({\n selector: 'app-volume-card',\n standalone: true,\n imports: [\n CardActionablesComponent,\n DecimalPipe,\n DefaultValuePipe,\n DownloadIndicatorComponent,\n EntityTitleComponent,\n ImageComponent,\n NgbProgressbar,\n NgbTooltip,\n RouterLink,\n Select2Module,\n TranslocoDirective,\n RelationshipPipe\n ],\n templateUrl: './volume-card.component.html',\n styleUrl: './volume-card.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VolumeCardComponent implements OnInit {\n\n private readonly destroyRef = inject(DestroyRef);\n public readonly imageService = inject(ImageService);\n public readonly bulkSelectionService = inject(BulkSelectionService);\n private readonly downloadService = inject(DownloadService);\n private readonly actionService = inject(ActionService);\n private readonly messageHub = inject(MessageHubService);\n private readonly accountService = inject(AccountService);\n private readonly scrollService = inject(ScrollService);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly router = inject(Router);\n private readonly readerService = inject(ReaderService);\n protected readonly utilityService = inject(UtilityService);\n\n @Input({required: true}) libraryId: number = 0;\n @Input({required: true}) libraryType!: LibraryType;\n @Input({required: true}) seriesId: number = 0;\n @Input({required: true}) volume!: Volume;\n /**\n * Any actions to perform on the card\n */\n @Input() actions: ActionItem[] = [];\n /**\n * If the entity is selected or not.\n */\n @Input() selected: boolean = false;\n /**\n * If the entity should show selection code\n */\n @Input() allowSelection: boolean = false;\n /**\n * This will suppress the \"cannot read archive warning\" when total pages is 0\n */\n @Input() suppressArchiveWarning: boolean = false;\n /**\n * When the card is selected.\n */\n @Output() selection = new EventEmitter();\n\n /**\n * This is the download we get from download service.\n */\n download$: Observable | null = null;\n /**\n * Handles touch events for selection on mobile devices\n */\n prevTouchTime: number = 0;\n /**\n * Handles touch events for selection on mobile devices to ensure you aren't touch scrolling\n */\n prevOffset: number = 0;\n selectionInProgress: boolean = false;\n\n private user: User | undefined;\n\n @HostListener('touchmove', ['$event'])\n onTouchMove(event: TouchEvent) {\n if (!this.allowSelection) return;\n\n this.selectionInProgress = false;\n this.cdRef.markForCheck();\n }\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent) {\n if (!this.allowSelection) return;\n\n this.prevTouchTime = event.timeStamp;\n this.prevOffset = this.scrollService.scrollPosition;\n this.selectionInProgress = true;\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: TouchEvent) {\n if (!this.allowSelection) return;\n const delta = event.timeStamp - this.prevTouchTime;\n const verticalOffset = this.scrollService.scrollPosition;\n\n if (delta >= 300 && delta <= 1000 && (verticalOffset === this.prevOffset) && this.selectionInProgress) {\n this.handleSelection();\n event.stopPropagation();\n event.preventDefault();\n }\n this.prevTouchTime = 0;\n this.selectionInProgress = false;\n }\n\n ngOnInit() {\n this.filterSendTo();\n\n this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {\n this.user = user;\n });\n\n this.download$ = this.downloadService.activeDownloads$.pipe(takeUntilDestroyed(this.destroyRef), map((events) => {\n return this.downloadService.mapToEntityType(events, this.volume);\n }));\n\n\n this.messageHub.messages$.pipe(filter(event => event.event === EVENTS.UserProgressUpdate),\n map(evt => evt.payload as UserProgressUpdateEvent), takeUntilDestroyed(this.destroyRef))\n .subscribe(updateEvent => {\n if (this.user === undefined || this.user.username !== updateEvent.username) return;\n if (updateEvent.volumeId !== this.volume.id) return;\n\n let sum = 0;\n const chapters = this.volume.chapters.filter(c => c.volumeId === updateEvent.volumeId);\n chapters.forEach(chapter => {\n chapter.pagesRead = updateEvent.pagesRead;\n sum += chapter.pagesRead;\n });\n this.volume.pagesRead = sum;\n this.cdRef.detectChanges();\n });\n\n }\n\n handleSelection(event?: any) {\n if (event) {\n event.stopPropagation();\n }\n this.selection.emit(this.selected);\n this.cdRef.detectChanges();\n }\n\n\n filterSendTo() {\n if (!this.actions || this.actions.length === 0) return;\n // TODO: See if we can handle send to for volumes\n //this.actions = this.actionFactoryService.filterSendToAction(this.actions, this.volume);\n }\n\n performAction(action: ActionItem) {\n if (action.action == Action.Download) {\n this.downloadService.download('volume', this.volume);\n return; // Don't propagate the download from a card\n }\n\n if (action.action == Action.SendTo) {\n const device = (action._extra!.data as Device);\n this.actionService.sendToDevice(this.volume.chapters.map(c => c.id), device);\n return;\n }\n\n if (typeof action.callback === 'function') {\n action.callback(action, this.volume);\n }\n }\n\n handleClick(event: any) {\n if (this.bulkSelectionService.hasSelections()) {\n this.handleSelection(event);\n return;\n }\n this.router.navigate(['library', this.libraryId, 'series', this.seriesId, 'volume', this.volume.id]);\n }\n\n read(event: any) {\n event.stopPropagation();\n event.preventDefault();\n console.log('reading volume');\n this.readerService.readVolume(this.libraryId, this.seriesId, this.volume, false);\n }\n\n protected readonly LibraryType = LibraryType;\n}\n","\n
\n
\n @if (volume.pages > 0 || suppressArchiveWarning) {\n \n } @else if (volume.pages === 0 && !suppressArchiveWarning) {\n \n }\n\n
\n @if (volume.pagesRead > 0 && volume.pagesRead < volume.pages && volume.pages > 0 && volume.pagesRead !== volume.pages) {\n

\n \n

\n }\n\n \n \n \n
\n\n @if(volume.pages === 0 && !suppressArchiveWarning) {\n
\n {{t('cannot-read')}}\n
\n }\n\n @if (volume.pagesRead === 0 && volume.pages > 0) {\n
\n
\n
\n }\n\n @if (allowSelection) {\n
\n \n
\n }\n
\n\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n\n @if (libraryType === LibraryType.LightNovel || libraryType === LibraryType.Book) {\n
\n \n \n
\n {{volume.name}}\n
\n\n @if (actions && actions.length > 0) {\n \n \n \n }\n
\n }\n\n
\n \n \n \n \n {{volume.name}}\n \n \n\n @if (actions && actions.length > 0) {\n \n \n \n }\n
\n\n\n\n
\n\n
\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nfunction NgxStarsComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵlistener(\"click\", function NgxStarsComponent_div_2_Template_div_click_0_listener($event) {\n const star_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.readonly ? ctx_r2.noop() : ctx_r2.onStarClick($event, star_r2));\n })(\"mousemove\", function NgxStarsComponent_div_2_Template_div_mousemove_0_listener($event) {\n const star_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.readonly ? ctx_r2.noop() : ctx_r2.onStarHover($event, star_r2));\n });\n i0.ɵɵelement(1, \"span\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const star_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngStyle\", ctx_r2.starPadding());\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"star-rtl\", ctx_r2.rtl);\n i0.ɵɵproperty(\"ngClass\", star_r2.classname)(\"ngStyle\", ctx_r2.starColorAndSize());\n }\n}\nlet NgxStarsComponent = /*#__PURE__*/(() => {\n class NgxStarsComponent {\n constructor() {\n this.maxStars = 5;\n this.initialStars = 0;\n this.animationSpeed = 100;\n this.wholeStars = false;\n this.rtl = false;\n this.ratingOutput = new EventEmitter();\n this.customClassIdentifier = Math.random().toString(36).substring(2);\n this.safeSize = () => Number.isInteger(this.size) && this.size > 0 && this.size < 6 ? this.size : 1;\n }\n ngOnInit() {\n this.setupStarImages();\n this.editableStars = Array.from(new Array(this.maxStars)).map((elem, index) => new EditableStar(index));\n if (this.rtl) {\n this.editableStars = this.editableStars.reverse();\n }\n this.setRating(this.initialStars);\n if (this.animation) {\n this.animationInterval = setInterval(this.starAnimation.bind(this), this.animationSpeed);\n }\n }\n ngOnDestroy() {\n // remove the three custom classes we created if custom image urls were provided\n if (this.customCssClasses) {\n this.customCssClasses.forEach(style => {\n if (style && style.parentNode) {\n style.parentNode.removeChild(style);\n }\n });\n }\n }\n setupStarImages() {\n if (this.customStarIcons) {\n this.customCssClasses = [];\n Object.keys(this.customStarIcons).map(key => key).forEach(starType => {\n const classname = this.getStarClass(starType);\n this.createCssClass(classname, starType);\n });\n }\n }\n createCssClass(classname, starType) {\n const clazz = document.createElement('style');\n clazz.type = 'text/css';\n clazz.innerHTML = `.${classname} {\n -webkit-mask-image: url(${this.customStarIcons[starType]});\n mask-image: url(${this.customStarIcons[starType]});\n }`;\n document.getElementsByTagName('head')[0].appendChild(clazz);\n this.customCssClasses.push(clazz);\n }\n starPadding() {\n return {\n 'margin-right': this.customPadding || `calc(${this.starSize().width} / 10)`\n };\n }\n starColorAndSize() {\n return Object.assign({}, this.starColor(), this.starSize());\n }\n starColor() {\n return {\n 'background-color': this.color || 'crimson'\n };\n }\n starSize() {\n return {\n height: this.customSize || `${15 * this.safeSize()}px`,\n width: this.customSize || `${16 * this.safeSize()}px`\n };\n }\n zeroStarLeft() {\n if (this.rtl) {\n const width = this.starSize()['width'];\n return `calc(${width} * ${this.maxStars})`;\n }\n return '-16px';\n }\n starAnimation() {\n this.animationRunning = true;\n if (this.rating < this.maxStars) {\n this.setRating(this.rating += 0.5);\n } else {\n this.setRating(0);\n }\n }\n cancelStarAnimation() {\n if (this.animationRunning) {\n clearInterval(this.animationInterval);\n this.rating = 0;\n this.animationRunning = false;\n }\n }\n setRating(rating) {\n this.rating = Math.round(rating * 2) / 2;\n this.onStarsUnhover();\n }\n onStarHover(event, clickedStar) {\n this.cancelStarAnimation();\n const clickedInFirstHalf = this.clickedInFirstHalf(event);\n // fill in either a half or whole star depending on where user clicked\n clickedStar.classname = !this.wholeStars && clickedInFirstHalf ? this.getStarClass('half') : this.getStarClass('full');\n // fill in all stars in previous positions and clear all in later ones\n this.editableStars.forEach(star => {\n if (star.position > clickedStar.position) {\n star.classname = this.getStarClass('empty');\n } else if (star.position < clickedStar.position) {\n star.classname = this.getStarClass('full');\n }\n });\n }\n onStarClick(event, clickedStar) {\n this.cancelStarAnimation();\n // lock in current rating\n const clickedInFirstHalf = this.clickedInFirstHalf(event);\n this.rating = clickedStar.position + (!this.wholeStars && clickedInFirstHalf ? 0.5 : 1);\n this.ratingOutput.emit(this.rating);\n }\n // hidden star to left of first star lets user click there to set to 0\n onZeroStarClick() {\n this.setRating(0);\n this.ratingOutput.emit(this.rating);\n }\n onZeroStarHover() {\n // clear all stars\n this.editableStars.forEach(star => star.classname = this.getStarClass('empty'));\n }\n onStarsUnhover() {\n // when user stops hovering we want to make stars reflect the last rating applied by clicking\n this.editableStars.forEach(star => {\n const starNumber = star.position + 1;\n if (this.rating >= starNumber) {\n star.classname = this.getStarClass('full');\n } else if (this.rating > starNumber - 1 && this.rating < starNumber) {\n star.classname = this.getStarClass('half');\n } else {\n star.classname = this.getStarClass('empty');\n }\n });\n }\n clickedInFirstHalf(event) {\n const starIcon = event.target;\n if (this.rtl) {\n return event.pageX > starIcon.getBoundingClientRect().right - starIcon.offsetWidth / 2;\n } else {\n return event.pageX < starIcon.getBoundingClientRect().left + starIcon.offsetWidth / 2;\n }\n }\n noop() {}\n getStarClass(starType) {\n if (this.customCssClasses) {\n return `ngx-stars-star-${starType}-${this.customClassIdentifier}`;\n }\n return `star-${starType}`;\n }\n // this and the aria-labels and role in the html inspired by https://stackoverflow.com/q/55966205\n getAriaLabel() {\n return `Rating: ${this.rating} out of ${this.maxStars} stars ${this.readonly ? '' : '. Can be edited.'}`;\n }\n }\n NgxStarsComponent.ɵfac = function NgxStarsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxStarsComponent)();\n };\n NgxStarsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxStarsComponent,\n selectors: [[\"ngx-stars\"]],\n inputs: {\n maxStars: \"maxStars\",\n initialStars: \"initialStars\",\n readonly: \"readonly\",\n size: \"size\",\n customSize: \"customSize\",\n color: \"color\",\n animation: \"animation\",\n animationSpeed: \"animationSpeed\",\n customPadding: \"customPadding\",\n wholeStars: \"wholeStars\",\n customStarIcons: \"customStarIcons\",\n rtl: \"rtl\"\n },\n outputs: {\n ratingOutput: \"ratingOutput\"\n },\n decls: 3,\n vars: 5,\n consts: [[\"role\", \"img\", 1, \"stars-line\", 3, \"mouseleave\"], [\"aria-hidden\", \"true\", 1, \"star\", \"zero-star\", 3, \"click\", \"mousemove\", \"ngStyle\"], [\"aria-hidden\", \"true\", 3, \"ngStyle\", \"click\", \"mousemove\", 4, \"ngFor\", \"ngForOf\"], [\"aria-hidden\", \"true\", 3, \"click\", \"mousemove\", \"ngStyle\"], [\"aria-hidden\", \"true\", 1, \"star\", 3, \"ngClass\", \"ngStyle\"]],\n template: function NgxStarsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"mouseleave\", function NgxStarsComponent_Template_div_mouseleave_0_listener() {\n return ctx.readonly ? ctx.noop() : ctx.onStarsUnhover();\n });\n i0.ɵɵelementStart(1, \"span\", 1);\n i0.ɵɵlistener(\"click\", function NgxStarsComponent_Template_span_click_1_listener() {\n return ctx.readonly ? ctx.noop() : ctx.onZeroStarClick();\n })(\"mousemove\", function NgxStarsComponent_Template_span_mousemove_1_listener() {\n return ctx.readonly ? ctx.noop() : ctx.onZeroStarHover();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, NgxStarsComponent_div_2_Template, 2, 5, \"div\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", ctx.getAriaLabel());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"left\", ctx.zeroStarLeft());\n i0.ɵɵproperty(\"ngStyle\", ctx.starSize());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.editableStars);\n }\n },\n dependencies: [i1.NgClass, i1.NgForOf, i1.NgStyle],\n styles: [\".stars-line[_ngcontent-%COMP%]{display:flex;align-items:center;position:relative}.stars-line[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{z-index:999}.zero-star[_ngcontent-%COMP%]{color:transparent;position:absolute}.star[_ngcontent-%COMP%]{display:inline-block;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.star-rtl[_ngcontent-%COMP%]{transform:scaleX(-1)}.star-empty[_ngcontent-%COMP%]{-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='far' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z'%3E%3C/path%3E%3C/svg%3E%0A\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='far' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z'%3E%3C/path%3E%3C/svg%3E%0A\\\")}.star-half[_ngcontent-%COMP%]{-webkit-mask-image:url(\\\"data:image/svg+xml,%3C!-- had to hack this one's viewbox otherwise it didn't line up with the other two --%3E%3C!-- changed viewbox from '0 0 536 512' to '-20 0 576 512' --%3E%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star-half-alt' class='svg-inline--fa fa-star-half-alt fa-w-17' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-20 0 576 512'%3E%3Cpath fill='currentColor' d='M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'%3E%3C/path%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3C!-- had to hack this one's viewbox otherwise it didn't line up with the other two --%3E%3C!-- changed viewbox from '0 0 536 512' to '-20 0 576 512' --%3E%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star-half-alt' class='svg-inline--fa fa-star-half-alt fa-w-17' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='-20 0 576 512'%3E%3Cpath fill='currentColor' d='M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z'%3E%3C/path%3E%3C/svg%3E\\\")}.star-full[_ngcontent-%COMP%]{-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg aria-hidden='true' focusable='false' data-prefix='fas' data-icon='star' class='svg-inline--fa fa-star fa-w-18' role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='currentColor' d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'%3E%3C/path%3E%3C/svg%3E\\\")}\"]\n });\n return NgxStarsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass EditableStar {\n constructor(position) {\n this.position = position;\n }\n}\nlet NgxStarsModule = /*#__PURE__*/(() => {\n class NgxStarsModule {}\n NgxStarsModule.ɵfac = function NgxStarsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxStarsModule)();\n };\n NgxStarsModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxStarsModule\n });\n NgxStarsModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n return NgxStarsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ngx-stars\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { EditableStar, NgxStarsComponent, NgxStarsModule };\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input} from '@angular/core';\nimport {NgbActiveModal} from \"@ng-bootstrap/ng-bootstrap\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {Breakpoint} from \"../../../shared/_services/utility.service\";\nimport {NgxStarsModule} from \"ngx-stars\";\nimport {ThemeService} from \"../../../_services/theme.service\";\nimport {SeriesService} from \"../../../_services/series.service\";\n\n@Component({\n selector: 'app-rating-modal',\n standalone: true,\n imports: [\n TranslocoDirective,\n NgxStarsModule\n ],\n templateUrl: './rating-modal.component.html',\n styleUrl: './rating-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RatingModalComponent {\n\n protected readonly modal = inject(NgbActiveModal);\n protected readonly themeService = inject(ThemeService);\n protected readonly seriesService = inject(SeriesService);\n protected readonly cdRef = inject(ChangeDetectorRef);\n\n protected readonly Breakpoint = Breakpoint;\n\n @Input({required: true}) userRating!: number;\n @Input({required: true}) seriesId!: number;\n @Input({required: true}) hasUserRated!: boolean;\n starColor = this.themeService.getCssVariable('--rating-star-color');\n\n\n updateRating(rating: number) {\n this.seriesService.updateRating(this.seriesId, rating).subscribe(() => {\n this.userRating = rating;\n this.hasUserRated = true;\n this.cdRef.markForCheck();\n });\n }\n\n close() {\n this.modal.close({hasUserRated: this.hasUserRated, userRating: this.userRating});\n }\n}\n","\n
\n

{{t('kavita-rating-title')}}

\n \n
\n
\n
\n \n {{userRating * 20}}%\n
\n
\n
\n \n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n inject,\n Input,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {SeriesService} from \"../../../_services/series.service\";\nimport {Rating} from \"../../../_models/rating\";\nimport {ProviderImagePipe} from \"../../../_pipes/provider-image.pipe\";\nimport {NgbModal, NgbPopover} from \"@ng-bootstrap/ng-bootstrap\";\nimport {LoadingComponent} from \"../../../shared/loading/loading.component\";\nimport {LibraryType} from \"../../../_models/library/library\";\nimport {ProviderNamePipe} from \"../../../_pipes/provider-name.pipe\";\nimport {NgxStarsModule} from \"ngx-stars\";\nimport {ThemeService} from \"../../../_services/theme.service\";\nimport {Breakpoint, UtilityService} from \"../../../shared/_services/utility.service\";\nimport {ImageComponent} from \"../../../shared/image/image.component\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {SafeHtmlPipe} from \"../../../_pipes/safe-html.pipe\";\nimport {ImageService} from \"../../../_services/image.service\";\nimport {AsyncPipe, NgOptimizedImage, NgTemplateOutlet} from \"@angular/common\";\nimport {RatingModalComponent} from \"../rating-modal/rating-modal.component\";\n\n@Component({\n selector: 'app-external-rating',\n standalone: true,\n imports: [ProviderImagePipe, NgbPopover, LoadingComponent, ProviderNamePipe, NgxStarsModule, ImageComponent,\n TranslocoDirective, SafeHtmlPipe, NgOptimizedImage, AsyncPipe, NgTemplateOutlet],\n templateUrl: './external-rating.component.html',\n styleUrls: ['./external-rating.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ExternalRatingComponent implements OnInit {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly seriesService = inject(SeriesService);\n private readonly themeService = inject(ThemeService);\n public readonly utilityService = inject(UtilityService);\n public readonly destroyRef = inject(DestroyRef);\n public readonly imageService = inject(ImageService);\n public readonly modalService = inject(NgbModal);\n\n protected readonly Breakpoint = Breakpoint;\n\n @Input({required: true}) seriesId!: number;\n @Input({required: true}) userRating!: number;\n @Input({required: true}) hasUserRated!: boolean;\n @Input({required: true}) libraryType!: LibraryType;\n @Input({required: true}) ratings: Array = [];\n @Input() webLinks: Array = [];\n\n isLoading: boolean = false;\n overallRating: number = -1;\n starColor = this.themeService.getCssVariable('--rating-star-color');\n\n ngOnInit() {\n this.seriesService.getOverallRating(this.seriesId).subscribe(r => this.overallRating = r.averageScore);\n }\n\n updateRating(rating: number) {\n this.seriesService.updateRating(this.seriesId, rating).subscribe(() => {\n this.userRating = rating;\n this.hasUserRated = true;\n this.cdRef.markForCheck();\n });\n }\n\n openRatingModal() {\n const modalRef = this.modalService.open(RatingModalComponent, {size: 'xl'});\n modalRef.componentInstance.userRating = this.userRating;\n modalRef.componentInstance.seriesId = this.seriesId;\n modalRef.componentInstance.hasUserRated = this.hasUserRated;\n\n modalRef.closed.subscribe((updated: {hasUserRated: boolean, userRating: number}) => {\n this.userRating = updated.userRating;\n this.hasUserRated = this.hasUserRated || updated.hasUserRated;\n this.cdRef.markForCheck();\n });\n }\n}\n","\n
\n\n\n @if (utilityService.activeBreakpoint$ | async; as activeBreakpoint) {\n @if (activeBreakpoint <= Breakpoint.Tablet) {\n
\n \n
\n } @else {\n
\n \n
\n }\n }\n\n @for (rating of ratings; track rating.provider + rating.averageScore) {\n
\n \n \"\"\n {{rating.averageScore}}%\n \n
\n }\n\n
\n \n
\n\n
\n @for(link of webLinks; track link) {\n \n \n \n }\n
\n
\n\n \n \n \n @if (hasUserRated) {\n {{userRating * 20}}\n } @else {\n N/A\n }\n\n @if (overallRating > 0) {\n + {{overallRating}}\n }\n @if (hasUserRated || overallRating > 0) {\n %\n }\n \n \n\n \n \n {{userRating * 20}}%\n \n\n \n
\n {{rating.favoriteCount}}\n
\n\n @if (rating.providerUrl) {\n {{t('entry-label')}}\n }\n
\n\n
\n","import {\n AsyncPipe,\n DOCUMENT,\n Location,\n NgClass,\n NgStyle,\n NgTemplateOutlet\n} from '@angular/common';\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Inject,\n inject,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport {FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {Title} from '@angular/platform-browser';\nimport {ActivatedRoute, Router, RouterLink} from '@angular/router';\nimport {\n NgbDropdown,\n NgbDropdownItem,\n NgbDropdownMenu,\n NgbDropdownToggle,\n NgbModal,\n NgbNav,\n NgbNavChangeEvent,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n NgbNavOutlet,\n NgbTooltip\n} from '@ng-bootstrap/ng-bootstrap';\nimport {ToastrService} from 'ngx-toastr';\nimport {catchError, debounceTime, forkJoin, Observable, of, ReplaySubject, tap} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {BulkSelectionService} from 'src/app/cards/bulk-selection.service';\nimport {\n EditSeriesModalCloseResult,\n EditSeriesModalComponent\n} from 'src/app/cards/_modals/edit-series-modal/edit-series-modal.component';\nimport {DownloadEvent, DownloadService} from 'src/app/shared/_services/download.service';\nimport {Breakpoint, UtilityService} from 'src/app/shared/_services/utility.service';\nimport {Chapter, LooseLeafOrDefaultNumber, SpecialVolumeNumber} from 'src/app/_models/chapter';\nimport {Device} from 'src/app/_models/device/device';\nimport {ScanSeriesEvent} from 'src/app/_models/events/scan-series-event';\nimport {SeriesRemovedEvent} from 'src/app/_models/events/series-removed-event';\nimport {LibraryType} from 'src/app/_models/library/library';\nimport {ReadingList} from 'src/app/_models/reading-list';\nimport {Series} from 'src/app/_models/series';\nimport {RelatedSeries} from 'src/app/_models/series-detail/related-series';\nimport {RelationKind} from 'src/app/_models/series-detail/relation-kind';\nimport {SeriesMetadata} from 'src/app/_models/metadata/series-metadata';\nimport {User} from 'src/app/_models/user';\nimport {Volume} from 'src/app/_models/volume';\nimport {AccountService} from 'src/app/_services/account.service';\nimport {Action, ActionFactoryService, ActionItem} from 'src/app/_services/action-factory.service';\nimport {ActionService} from 'src/app/_services/action.service';\nimport {ImageService} from 'src/app/_services/image.service';\nimport {LibraryService} from 'src/app/_services/library.service';\nimport {EVENTS, MessageHubService} from 'src/app/_services/message-hub.service';\nimport {NavService} from 'src/app/_services/nav.service';\nimport {ReaderService} from 'src/app/_services/reader.service';\nimport {ReadingListService} from 'src/app/_services/reading-list.service';\nimport {ScrollService} from 'src/app/_services/scroll.service';\nimport {SeriesService} from 'src/app/_services/series.service';\nimport {\n ReviewSeriesModalCloseAction,\n ReviewSeriesModalCloseEvent,\n ReviewSeriesModalComponent\n} from '../../../_single-module/review-series-modal/review-series-modal.component';\nimport {PageLayoutMode} from 'src/app/_models/page-layout-mode';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {UserReview} from \"../../../_single-module/review-card/user-review\";\nimport {ExternalSeriesCardComponent} from '../../../cards/external-series-card/external-series-card.component';\nimport {SeriesCardComponent} from '../../../cards/series-card/series-card.component';\nimport {VirtualScrollerModule} from '@iharbeck/ngx-virtual-scroller';\nimport {BulkOperationsComponent} from '../../../cards/bulk-operations/bulk-operations.component';\nimport {ReviewCardComponent} from '../../../_single-module/review-card/review-card.component';\nimport {CarouselReelComponent} from '../../../carousel/_components/carousel-reel/carousel-reel.component';\nimport {translate, TranslocoDirective, TranslocoService} from \"@jsverse/transloco\";\nimport {CardActionablesComponent} from \"../../../_single-module/card-actionables/card-actionables.component\";\nimport {PublicationStatus} from \"../../../_models/metadata/publication-status\";\nimport {NextExpectedChapter} from \"../../../_models/series-detail/next-expected-chapter\";\nimport {NextExpectedCardComponent} from \"../../../cards/next-expected-card/next-expected-card.component\";\nimport {MetadataService} from \"../../../_services/metadata.service\";\nimport {Rating} from \"../../../_models/rating\";\nimport {ThemeService} from \"../../../_services/theme.service\";\nimport {DetailsTabComponent} from \"../../../_single-module/details-tab/details-tab.component\";\nimport {\n EditChapterModalCloseResult,\n EditChapterModalComponent\n} from \"../../../_single-module/edit-chapter-modal/edit-chapter-modal.component\";\nimport {ChapterRemovedEvent} from \"../../../_models/events/chapter-removed-event\";\nimport {ChapterCardComponent} from \"../../../cards/chapter-card/chapter-card.component\";\nimport {VolumeCardComponent} from \"../../../cards/volume-card/volume-card.component\";\nimport {SettingsTabId} from \"../../../sidenav/preference-nav/preference-nav.component\";\nimport {FilterField} from \"../../../_models/metadata/v2/filter-field\";\nimport {AgeRating} from \"../../../_models/metadata/age-rating\";\nimport {DefaultValuePipe} from \"../../../_pipes/default-value.pipe\";\nimport {ExternalRatingComponent} from \"../external-rating/external-rating.component\";\nimport {ReadMoreComponent} from \"../../../shared/read-more/read-more.component\";\nimport {FilterComparison} from \"../../../_models/metadata/v2/filter-comparison\";\nimport {FilterUtilitiesService} from \"../../../shared/_services/filter-utilities.service\";\nimport {BadgeExpanderComponent} from \"../../../shared/badge-expander/badge-expander.component\";\nimport {ScrobblingService} from \"../../../_services/scrobbling.service\";\nimport {HourEstimateRange} from \"../../../_models/series-detail/hour-estimate-range\";\nimport {PublicationStatusPipe} from \"../../../_pipes/publication-status.pipe\";\nimport {MetadataDetailRowComponent} from \"../metadata-detail-row/metadata-detail-row.component\";\nimport {DownloadButtonComponent} from \"../download-button/download-button.component\";\nimport {hasAnyCast} from \"../../../_models/common/i-has-cast\";\nimport {EditVolumeModalComponent} from \"../../../_single-module/edit-volume-modal/edit-volume-modal.component\";\nimport {CoverUpdateEvent} from \"../../../_models/events/cover-update-event\";\nimport {RelatedSeriesPair, RelatedTabComponent} from \"../../../_single-modules/related-tab/related-tab.component\";\nimport {CollectionTagService} from \"../../../_services/collection-tag.service\";\nimport {UserCollection} from \"../../../_models/collection-tag\";\nimport {CoverImageComponent} from \"../../../_single-module/cover-image/cover-image.component\";\nimport {DefaultModalOptions} from \"../../../_models/default-modal-options\";\n\n\nenum TabID {\n Related = 'related-tab',\n Specials = 'specials-tab',\n Storyline = 'storyline-tab',\n Volumes = 'volume-tab',\n Chapters = 'chapter-tab',\n Recommendations = 'recommendations-tab',\n Reviews = 'reviews-tab',\n Details = 'details-tab',\n}\n\ninterface StoryLineItem {\n chapter?: Chapter;\n volume?: Volume;\n isChapter: boolean;\n}\n\n@Component({\n selector: 'app-series-detail',\n templateUrl: './series-detail.component.html',\n styleUrls: ['./series-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CardActionablesComponent, ReactiveFormsModule, NgStyle,\n NgbTooltip, NgbDropdown, NgbDropdownToggle, NgbDropdownMenu,\n NgbDropdownItem, CarouselReelComponent, ReviewCardComponent, BulkOperationsComponent,\n NgbNav, NgbNavItem, NgbNavLink, NgbNavContent, VirtualScrollerModule, SeriesCardComponent, ExternalSeriesCardComponent, NgbNavOutlet,\n TranslocoDirective, NgTemplateOutlet, NextExpectedCardComponent,\n NgClass, AsyncPipe, DetailsTabComponent, ChapterCardComponent,\n VolumeCardComponent, DefaultValuePipe, ExternalRatingComponent, ReadMoreComponent, RouterLink, BadgeExpanderComponent,\n PublicationStatusPipe, MetadataDetailRowComponent, DownloadButtonComponent, RelatedTabComponent, CoverImageComponent]\n})\nexport class SeriesDetailComponent implements OnInit, AfterContentChecked {\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly route = inject(ActivatedRoute);\n private readonly seriesService = inject(SeriesService);\n private readonly metadataService = inject(MetadataService);\n private readonly router = inject(Router);\n private readonly modalService = inject(NgbModal);\n private readonly toastr = inject(ToastrService);\n protected readonly accountService = inject(AccountService);\n private readonly actionFactoryService = inject(ActionFactoryService);\n private readonly libraryService = inject(LibraryService);\n private readonly titleService = inject(Title);\n private readonly downloadService = inject(DownloadService);\n private readonly actionService = inject(ActionService);\n private readonly messageHub = inject(MessageHubService);\n private readonly readingListService = inject(ReadingListService);\n private readonly collectionTagService = inject(CollectionTagService);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly scrollService = inject(ScrollService);\n private readonly translocoService = inject(TranslocoService);\n protected readonly bulkSelectionService = inject(BulkSelectionService);\n protected readonly utilityService = inject(UtilityService);\n protected readonly imageService = inject(ImageService);\n protected readonly navService = inject(NavService);\n protected readonly readerService = inject(ReaderService);\n protected readonly themeService = inject(ThemeService);\n private readonly filterUtilityService = inject(FilterUtilitiesService);\n private readonly scrobbleService = inject(ScrobblingService);\n private readonly location = inject(Location);\n\n protected readonly LibraryType = LibraryType;\n protected readonly TabID = TabID;\n protected readonly LooseLeafOrSpecialNumber = LooseLeafOrDefaultNumber;\n protected readonly SpecialVolumeNumber = SpecialVolumeNumber;\n protected readonly SettingsTabId = SettingsTabId;\n protected readonly FilterField = FilterField;\n protected readonly AgeRating = AgeRating;\n protected readonly Breakpoint = Breakpoint;\n\n @ViewChild('scrollingBlock') scrollingBlock: ElementRef | undefined;\n @ViewChild('companionBar') companionBar: ElementRef | undefined;\n\n\n /**\n * Series Id. Set at load before UI renders\n */\n seriesId!: number;\n series!: Series;\n volumes: Volume[] = [];\n chapters: Chapter[] = [];\n storyChapters: Chapter[] = [];\n storylineItems: StoryLineItem[] = [];\n libraryId = 0;\n isAdmin = false;\n hasDownloadingRole = false;\n isLoading = true;\n isLoadingExtra = false;\n libraryAllowsScrobbling = false;\n isScrobbling: boolean = true;\n mobileSeriesImgBackground: string | undefined;\n\n currentlyReadingChapter: Chapter | undefined = undefined;\n hasReadingProgress = false;\n\n\n seriesActions: ActionItem[] = [];\n volumeActions: ActionItem[] = [];\n chapterActions: ActionItem[] = [];\n\n hasSpecials = false;\n specials: Array = [];\n activeTabId = TabID.Storyline;\n\n reviews: Array = [];\n plusReviews: Array = [];\n ratings: Array = [];\n libraryType: LibraryType = LibraryType.Manga;\n seriesMetadata: SeriesMetadata | null = null;\n readingLists: Array = [];\n collections: Array = [];\n isWantToRead: boolean = false;\n unreadCount: number = 0;\n totalCount: number = 0;\n readingTimeLeft: HourEstimateRange | null = null;\n /**\n * Poster image for the Series\n */\n seriesImage: string = '';\n downloadInProgress: boolean = false;\n\n nextExpectedChapter: NextExpectedChapter | undefined;\n loadPageSource = new ReplaySubject(1);\n loadPage$ = this.loadPageSource.asObservable();\n\n /**\n * Track by function for Volume to tell when to refresh card data\n */\n trackByVolumeIdentity = (index: number, item: Volume) => `${item.name}_${item.pagesRead}`;\n /**\n * Track by function for Chapter to tell when to refresh card data\n */\n trackByChapterIdentity = (index: number, item: Chapter) => `${item.title}_${item.minNumber}_${item.maxNumber}_${item.volumeId}_${item.pagesRead}`;\n\n /**\n * Are there any related series\n */\n hasRelations: boolean = false;\n /**\n * Are there recommendations\n */\n hasRecommendations: boolean = false;\n\n /**\n * Related Series. Sorted by backend\n */\n relations: Array = [];\n relationShips: RelatedSeries | null = null;\n /**\n * Recommended Series\n */\n combinedRecs: Array = [];\n\n sortingOptions: Array<{value: string, text: string}> = [\n {value: 'Storyline', text: 'Storyline'},\n {value: 'Release', text: 'Release'},\n {value: 'Added', text: 'Added'},\n ];\n renderMode: PageLayoutMode = PageLayoutMode.Cards;\n\n pageExtrasGroup = new FormGroup({\n 'sortingOption': new FormControl(this.sortingOptions[0].value, []),\n 'renderMode': new FormControl(this.renderMode, []),\n });\n\n user: User | undefined;\n showVolumeTab = true;\n showStorylineTab = true;\n showChapterTab = true;\n showDetailsTab = true;\n\n /**\n * This is the download we get from download service.\n */\n download$: Observable | null = null;\n\n bulkActionCallback = async (action: ActionItem, data: any) => {\n if (this.series === undefined) {\n return;\n }\n const seriesId = this.series.id;\n // we need to figure out what is actually selected now\n const selectedVolumeIndexes = this.bulkSelectionService.getSelectedCardsForSource('volume');\n const selectedChapterIndexes = this.bulkSelectionService.getSelectedCardsForSource('chapter');\n const selectedSpecialIndexes = this.bulkSelectionService.getSelectedCardsForSource('special');\n\n // NOTE: This needs to check current tab as chapter array will be different\n let chapterArray = this.storyChapters;\n if (this.activeTabId === TabID.Chapters) chapterArray = this.chapters;\n\n // We must augment chapter indices as Bulk Selection assumes all on one page, but Storyline has mixed\n const chapterIndexModifier = this.activeTabId === TabID.Storyline ? this.volumes.length : 0;\n const selectedChapterIds = chapterArray.filter((_chapter, index: number) => {\n const mappedIndex = index + chapterIndexModifier;\n return selectedChapterIndexes.includes(mappedIndex + '');\n });\n const selectedVolumeIds = this.volumes.filter((_volume, index: number) => selectedVolumeIndexes.includes(index + ''));\n const selectedSpecials = this.specials.filter((_chapter, index: number) => selectedSpecialIndexes.includes(index + ''));\n const chapters = [...selectedChapterIds, ...selectedSpecials];\n\n switch (action.action) {\n case Action.AddToReadingList:\n this.actionService.addMultipleToReadingList(seriesId, selectedVolumeIds, chapters, (success) => {\n if (success) this.bulkSelectionService.deselectAll();\n this.cdRef.markForCheck();\n });\n break;\n case Action.MarkAsRead:\n this.actionService.markMultipleAsRead(seriesId, selectedVolumeIds, chapters, () => {\n this.setContinuePoint();\n // TODO: BUG: This doesn't update series pagesRead\n this.bulkSelectionService.deselectAll();\n this.cdRef.markForCheck();\n });\n\n break;\n case Action.MarkAsUnread:\n this.actionService.markMultipleAsUnread(seriesId, selectedVolumeIds, chapters, () => {\n this.setContinuePoint();\n // TODO: BUG: This doesn't update series pagesRead\n this.bulkSelectionService.deselectAll();\n this.cdRef.markForCheck();\n });\n break;\n case Action.SendTo:\n const device = (action._extra!.data as Device);\n this.actionService.sendToDevice(chapters.map(c => c.id), device);\n this.bulkSelectionService.deselectAll();\n this.cdRef.markForCheck();\n break;\n case Action.Delete:\n await this.actionService.deleteMultipleChapters(seriesId, chapters, () => {\n // No need to update the page as the backend will spam volume/chapter deletions\n this.bulkSelectionService.deselectAll();\n this.cdRef.markForCheck();\n });\n break;\n }\n }\n\n\n get UseBookLogic() {\n return this.libraryType === LibraryType.Book || this.libraryType === LibraryType.LightNovel;\n }\n\n get WebLinks() {\n if (!this.seriesMetadata || this.seriesMetadata?.webLinks === '') return [];\n return this.seriesMetadata.webLinks.split(',');\n }\n\n get ScrollingBlockHeight() {\n if (this.scrollingBlock === undefined) return 'calc(var(--vh)*100)';\n const navbar = this.document.querySelector('.navbar') as HTMLElement;\n if (navbar === null) return 'calc(var(--vh)*100)';\n\n const companionHeight = this.companionBar?.nativeElement.offsetHeight || 0;\n const navbarHeight = navbar.offsetHeight;\n const totalHeight = companionHeight + navbarHeight + 21; //21px to account for padding\n return 'calc(var(--vh)*100 - ' + totalHeight + 'px)';\n }\n\n get ContinuePointTitle() {\n if (this.currentlyReadingChapter === undefined || !this.hasReadingProgress) return '';\n\n if (!this.currentlyReadingChapter.isSpecial) {\n const vol = this.volumes.filter(v => v.id === this.currentlyReadingChapter?.volumeId);\n\n let chapterLocaleKey = 'common.chapter-num-shorthand';\n let volumeLocaleKey = 'common.volume-num-shorthand';\n switch (this.libraryType) {\n case LibraryType.ComicVine:\n case LibraryType.Comic:\n chapterLocaleKey = 'common.issue-num-shorthand';\n break;\n case LibraryType.Book:\n case LibraryType.LightNovel:\n chapterLocaleKey = 'common.book-num-shorthand';\n break;\n case LibraryType.Manga:\n case LibraryType.Images:\n chapterLocaleKey = 'common.chapter-num-shorthand';\n break;\n }\n\n // This is a lone chapter\n if (vol.length === 0) {\n if (this.currentlyReadingChapter.minNumber === LooseLeafOrDefaultNumber) {\n return this.currentlyReadingChapter.titleName;\n }\n return translate(chapterLocaleKey, {num: this.currentlyReadingChapter.minNumber});\n }\n\n if (this.currentlyReadingChapter.minNumber === LooseLeafOrDefaultNumber) {\n return translate(volumeLocaleKey, {num: vol[0].minNumber});\n }\n\n return translate(volumeLocaleKey, {num: vol[0].minNumber})\n + ' ' + translate(chapterLocaleKey, {num: this.currentlyReadingChapter.minNumber});\n }\n\n return this.currentlyReadingChapter.title;\n }\n\n\n constructor(@Inject(DOCUMENT) private document: Document) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n\n\n this.accountService.currentUser$.subscribe(user => {\n if (user) {\n this.user = user;\n this.isAdmin = this.accountService.hasAdminRole(user);\n this.hasDownloadingRole = this.accountService.hasDownloadRole(user);\n this.renderMode = user.preferences.globalPageLayoutMode;\n this.pageExtrasGroup.get('renderMode')?.setValue(this.renderMode);\n this.cdRef.markForCheck();\n }\n });\n }\n\n ngAfterContentChecked(): void {\n this.scrollService.setScrollContainer(this.scrollingBlock);\n }\n\n ngOnInit(): void {\n const routeId = this.route.snapshot.paramMap.get('seriesId');\n const libraryId = this.route.snapshot.paramMap.get('libraryId');\n if (routeId === null || libraryId == null) {\n this.router.navigateByUrl('/home');\n return;\n }\n\n this.mobileSeriesImgBackground = getComputedStyle(document.documentElement)\n .getPropertyValue('--mobile-series-img-background').trim();\n\n\n // Set up the download in progress\n this.download$ = this.downloadService.activeDownloads$.pipe(takeUntilDestroyed(this.destroyRef), map((events) => {\n return this.downloadService.mapToEntityType(events, this.series);\n }));\n\n this.loadPage$.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(300), tap(val => this.loadSeries(this.seriesId, val))).subscribe();\n\n this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(event => {\n if (event.event === EVENTS.SeriesRemoved) {\n const seriesRemovedEvent = event.payload as SeriesRemovedEvent;\n if (seriesRemovedEvent.seriesId === this.seriesId) {\n this.toastr.info(this.translocoService.translate('errors.series-doesnt-exist'));\n this.router.navigateByUrl('/home');\n }\n } else if (event.event === EVENTS.ScanSeries) {\n const seriesScanEvent = event.payload as ScanSeriesEvent;\n if (seriesScanEvent.seriesId === this.seriesId) {\n //this.loadSeries(this.seriesId);\n this.loadPageSource.next(false);\n }\n } else if (event.event === EVENTS.CoverUpdate) {\n const coverUpdateEvent = event.payload as CoverUpdateEvent;\n if (coverUpdateEvent.id === this.seriesId) {\n this.themeService.refreshColorScape('series', this.seriesId).subscribe();\n }\n } else if (event.event === EVENTS.ChapterRemoved) {\n const removedEvent = event.payload as ChapterRemovedEvent;\n if (removedEvent.seriesId !== this.seriesId) return;\n //this.loadSeries(this.seriesId, false);\n this.loadPageSource.next(false);\n }\n });\n\n this.seriesId = parseInt(routeId, 10);\n this.libraryId = parseInt(libraryId, 10);\n this.seriesImage = this.imageService.getSeriesCoverImage(this.seriesId);\n this.cdRef.markForCheck();\n\n this.scrobbleService.hasHold(this.seriesId).subscribe(res => {\n this.isScrobbling = !res;\n this.cdRef.markForCheck();\n });\n\n this.scrobbleService.libraryAllowsScrobbling(this.seriesId).subscribe(res => {\n this.libraryAllowsScrobbling = res;\n this.cdRef.markForCheck();\n });\n\n\n\n this.route.fragment.pipe(tap(frag => {\n if (frag !== null && this.activeTabId !== (frag as TabID)) {\n this.activeTabId = frag as TabID;\n this.updateUrl(this.activeTabId);\n this.cdRef.markForCheck();\n }\n }), takeUntilDestroyed(this.destroyRef)).subscribe();\n\n //this.loadSeries(this.seriesId, true);\n this.loadPageSource.next(true);\n\n this.pageExtrasGroup.get('renderMode')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((val: PageLayoutMode | null) => {\n if (val == null) return;\n this.renderMode = val;\n this.cdRef.markForCheck();\n });\n }\n\n\n onNavChange(event: NgbNavChangeEvent) {\n this.bulkSelectionService.deselectAll();\n this.updateUrl(event.nextId);\n this.cdRef.markForCheck();\n }\n\n updateUrl(activeTab: TabID) {\n const tokens = this.location.path().split('#');\n const newUrl = `${tokens[0]}#${activeTab}`;\n this.location.replaceState(newUrl)\n }\n\n handleSeriesActionCallback(action: ActionItem, series: Series) {\n this.cdRef.markForCheck();\n switch(action.action) {\n case(Action.MarkAsRead):\n this.actionService.markSeriesAsRead(series, (series: Series) => {\n this.loadPageSource.next(false);\n });\n break;\n case(Action.MarkAsUnread):\n this.actionService.markSeriesAsUnread(series, (series: Series) => {\n this.loadPageSource.next(false);\n });\n break;\n case(Action.Scan):\n this.actionService.scanSeries(series);\n break;\n case(Action.RefreshMetadata):\n this.actionService.refreshSeriesMetadata(series, undefined, true, false);\n break;\n case(Action.GenerateColorScape):\n this.actionService.refreshSeriesMetadata(series, undefined, false, true);\n break;\n case(Action.Delete):\n this.deleteSeries(series);\n break;\n case(Action.AddToReadingList):\n this.actionService.addSeriesToReadingList(series);\n break;\n case(Action.AddToCollection):\n this.actionService.addMultipleSeriesToCollectionTag([series]);\n break;\n case (Action.AnalyzeFiles):\n this.actionService.analyzeFilesForSeries(series);\n break;\n case Action.AddToWantToReadList:\n this.actionService.addMultipleSeriesToWantToReadList([series.id]);\n break;\n case Action.RemoveFromWantToReadList:\n this.actionService.removeMultipleSeriesFromWantToReadList([series.id]);\n break;\n case Action.Download:\n if (this.downloadInProgress) return;\n this.downloadSeries();\n break;\n case Action.SendTo:\n {\n const chapterIds = [...this.volumes.map(v => v.chapters.map(c => c.id)).flat(), ...this.specials.map(c => c.id)]\n const device = (action._extra!.data as Device);\n this.actionService.sendToDevice(chapterIds, device);\n break;\n }\n default:\n break;\n }\n }\n\n async handleVolumeActionCallback(action: ActionItem, volume: Volume) {\n switch(action.action) {\n case(Action.MarkAsRead):\n this.markVolumeAsRead(volume);\n break;\n case(Action.MarkAsUnread):\n this.markVolumeAsUnread(volume);\n break;\n case(Action.Edit):\n this.openEditVolume(volume);\n break;\n case(Action.Delete):\n await this.actionService.deleteVolume(volume.id, (b) => {\n if (!b) return;\n this.loadPageSource.next(false);\n });\n break;\n case(Action.AddToReadingList):\n this.actionService.addVolumeToReadingList(volume, this.seriesId, () => {/* No Operation */ });\n break;\n case(Action.IncognitoRead):\n if (volume.chapters != undefined && volume.chapters?.length >= 1) {\n this.openChapter(volume.chapters.sort(this.utilityService.sortChapters)[0], true);\n }\n break;\n case (Action.SendTo):\n {\n const device = (action._extra!.data as Device);\n this.actionService.sendToDevice(volume.chapters.map(c => c.id), device);\n break;\n }\n default:\n break;\n }\n }\n\n handleChapterActionCallback(action: ActionItem, chapter: Chapter) {\n switch (action.action) {\n case(Action.MarkAsRead):\n this.markChapterAsRead(chapter);\n break;\n case(Action.MarkAsUnread):\n this.markChapterAsUnread(chapter);\n break;\n case(Action.Edit):\n this.openEditChapter(chapter);\n break;\n case(Action.AddToReadingList):\n this.actionService.addChapterToReadingList(chapter, this.seriesId, () => {/* No Operation */ });\n break;\n case(Action.IncognitoRead):\n this.openChapter(chapter, true);\n break;\n case (Action.SendTo):\n const device = (action._extra!.data as Device);\n this.actionService.sendToDevice([chapter.id], device);\n break;\n default:\n break;\n }\n }\n\n\n async deleteSeries(series: Series) {\n await this.actionService.deleteSeries(series, (result: boolean) => {\n this.cdRef.markForCheck();\n if (result) {\n this.router.navigate(['library', this.libraryId]);\n }\n });\n }\n\n loadSeries(seriesId: number, loadExternal: boolean = false) {\n this.seriesService.getMetadata(seriesId).subscribe(metadata => {\n this.seriesMetadata = {...metadata};\n this.cdRef.markForCheck();\n\n if (![PublicationStatus.Ended, PublicationStatus.OnGoing].includes(this.seriesMetadata.publicationStatus)) return;\n\n this.seriesService.getNextExpectedChapterDate(seriesId).subscribe(date => {\n if (date == null || date.expectedDate === null) {\n if (this.nextExpectedChapter !== undefined) {\n // Clear out the data so the card removes\n this.nextExpectedChapter = undefined;\n this.cdRef.markForCheck();\n }\n return;\n }\n\n this.nextExpectedChapter = date;\n this.cdRef.markForCheck();\n });\n });\n\n this.seriesService.isWantToRead(seriesId).subscribe(isWantToRead => {\n this.isWantToRead = isWantToRead;\n this.cdRef.markForCheck();\n });\n\n this.readingListService.getReadingListsForSeries(seriesId).subscribe(lists => {\n this.readingLists = lists;\n this.cdRef.markForCheck();\n });\n\n this.collectionTagService.allCollectionsForSeries(seriesId, false).subscribe(tags => {\n this.collections = tags;\n this.cdRef.markForCheck();\n })\n\n this.readerService.getTimeLeft(seriesId).subscribe((timeLeft) => {\n this.readingTimeLeft = timeLeft;\n this.cdRef.markForCheck();\n });\n\n this.setContinuePoint();\n\n\n forkJoin({\n libType: this.libraryService.getLibraryType(this.libraryId),\n series: this.seriesService.getSeries(seriesId)\n }).subscribe(results => {\n this.libraryType = results.libType;\n this.series = results.series;\n\n this.themeService.setColorScape(this.series.primaryColor, this.series.secondaryColor);\n\n if (loadExternal) {\n this.loadPlusMetadata(this.seriesId, this.libraryType);\n }\n\n if (this.libraryType === LibraryType.LightNovel) {\n this.renderMode = PageLayoutMode.List;\n this.pageExtrasGroup.get('renderMode')?.setValue(this.renderMode);\n this.cdRef.markForCheck();\n }\n\n\n this.titleService.setTitle('Kavita - ' + this.series.name + ' Details');\n\n this.volumeActions = this.actionFactoryService.getVolumeActions(this.handleVolumeActionCallback.bind(this));\n this.chapterActions = this.actionFactoryService.getChapterActions(this.handleChapterActionCallback.bind(this));\n this.seriesActions = this.actionFactoryService.getSeriesActions(this.handleSeriesActionCallback.bind(this))\n .filter(action => action.action !== Action.Edit);\n\n\n this.seriesService.getRelatedForSeries(this.seriesId).subscribe((relations: RelatedSeries) => {\n this.relationShips = relations;\n this.relations = [\n ...relations.prequels.map(item => this.createRelatedSeries(item, RelationKind.Prequel)),\n ...relations.sequels.map(item => this.createRelatedSeries(item, RelationKind.Sequel)),\n ...relations.sideStories.map(item => this.createRelatedSeries(item, RelationKind.SideStory)),\n ...relations.spinOffs.map(item => this.createRelatedSeries(item, RelationKind.SpinOff)),\n ...relations.adaptations.map(item => this.createRelatedSeries(item, RelationKind.Adaptation)),\n ...relations.contains.map(item => this.createRelatedSeries(item, RelationKind.Contains)),\n ...relations.characters.map(item => this.createRelatedSeries(item, RelationKind.Character)),\n ...relations.others.map(item => this.createRelatedSeries(item, RelationKind.Other)),\n ...relations.alternativeSettings.map(item => this.createRelatedSeries(item, RelationKind.AlternativeSetting)),\n ...relations.alternativeVersions.map(item => this.createRelatedSeries(item, RelationKind.AlternativeVersion)),\n ...relations.doujinshis.map(item => this.createRelatedSeries(item, RelationKind.Doujinshi)),\n ...relations.parent.map(item => this.createRelatedSeries(item, RelationKind.Parent)),\n ...relations.editions.map(item => this.createRelatedSeries(item, RelationKind.Edition)),\n ...relations.annuals.map(item => this.createRelatedSeries(item, RelationKind.Annual)),\n ];\n\n if (this.relations.length > 0) {\n this.hasRelations = true;\n this.cdRef.markForCheck();\n } else {\n this.hasRelations = false;\n this.cdRef.markForCheck();\n }\n });\n\n this.seriesService.getSeriesDetail(this.seriesId).pipe(catchError(err => {\n this.router.navigateByUrl('/home');\n return of(null);\n })).subscribe(detail => {\n if (detail == null) {\n this.router.navigateByUrl('/home');\n return;\n }\n\n this.unreadCount = detail.unreadCount;\n this.totalCount = detail.totalCount;\n\n this.hasSpecials = detail.specials.length > 0;\n this.specials = detail.specials;\n\n this.chapters = detail.chapters;\n this.volumes = detail.volumes;\n this.storyChapters = detail.storylineChapters;\n\n this.storylineItems = [];\n const v = this.volumes.map(v => {\n return {volume: v, chapter: undefined, isChapter: false} as StoryLineItem;\n });\n this.storylineItems.push(...v);\n const c = this.storyChapters.map(c => {\n return {volume: undefined, chapter: c, isChapter: true} as StoryLineItem;\n });\n this.storylineItems.push(...c);\n\n this.updateWhichTabsToShow();\n\n if (!this.router.url.includes('#')) {\n this.updateSelectedTab();\n }\n\n\n\n this.isLoading = false;\n this.cdRef.markForCheck();\n });\n }, err => {\n this.router.navigateByUrl('/home');\n });\n }\n\n createRelatedSeries(series: Series, relation: RelationKind) {\n return {series, relation} as RelatedSeriesPair;\n }\n\n shouldShowStorylineTab() {\n if (this.libraryType === LibraryType.ComicVine) return false;\n // Edge case for bad pdf parse\n if ((this.libraryType === LibraryType.Book || this.libraryType === LibraryType.LightNovel) && (this.volumes.length === 0 && this.chapters.length === 0 && this.storyChapters.length > 0)) return true;\n\n return (this.libraryType !== LibraryType.Book && this.libraryType !== LibraryType.LightNovel && this.libraryType !== LibraryType.Comic)\n && (this.volumes.length > 0 || this.chapters.length > 0);\n }\n\n shouldShowVolumeTab() {\n if (this.libraryType === LibraryType.ComicVine) {\n if (this.volumes.length > 1) return true;\n if (this.specials.length === 0 && this.chapters.length === 0) return true;\n return false;\n }\n return this.volumes.length > 0;\n }\n\n shouldShowChaptersTab() {\n return this.chapters.length > 0;\n }\n\n updateWhichTabsToShow() {\n this.showVolumeTab = this.shouldShowVolumeTab();\n this.showStorylineTab = this.shouldShowStorylineTab();\n this.showChapterTab = this.shouldShowChaptersTab();\n this.showDetailsTab = hasAnyCast(this.seriesMetadata) || (this.seriesMetadata?.genres || []).length > 0\n || (this.seriesMetadata?.tags || []).length > 0 || (this.seriesMetadata?.webLinks || []).length > 0;\n this.cdRef.markForCheck();\n }\n\n /**\n * This will update the selected tab\n *\n * This assumes loadPage() has already primed all the calculations and state variables. Do not call directly.\n */\n updateSelectedTab() {\n // Book libraries only have Volumes or Specials enabled\n if (this.libraryType === LibraryType.Book || this.libraryType === LibraryType.LightNovel) {\n if (this.volumes.length === 0) {\n if (this.specials.length === 0 && this.storyChapters.length > 0) {\n // NOTE: This is an edge case caused by bad parsing of pdf files. Once the new pdf parser is in place, this should be removed\n this.activeTabId = TabID.Storyline;\n } else {\n this.activeTabId = TabID.Specials;\n }\n } else {\n this.activeTabId = TabID.Volumes;\n }\n this.updateUrl(this.activeTabId);\n this.cdRef.markForCheck();\n return;\n }\n\n if (this.volumes.length === 0 && this.chapters.length === 0 && this.specials.length > 0) {\n this.activeTabId = TabID.Specials;\n } else {\n if (this.libraryType == LibraryType.Comic || this.libraryType == LibraryType.ComicVine) {\n if (this.chapters.length === 0) {\n if (this.specials.length > 0) {\n this.activeTabId = TabID.Specials;\n } else {\n this.activeTabId = TabID.Volumes;\n }\n } else {\n this.activeTabId = TabID.Chapters;\n }\n } else {\n this.activeTabId = TabID.Storyline;\n }\n }\n\n this.updateUrl(this.activeTabId);\n this.cdRef.markForCheck();\n }\n\n\n loadPlusMetadata(seriesId: number, libraryType: LibraryType) {\n this.isLoadingExtra = true;\n this.cdRef.markForCheck();\n\n this.metadataService.getSeriesMetadataFromPlus(seriesId, libraryType).subscribe(data => {\n if (data === null) {\n this.isLoadingExtra = false;\n this.cdRef.markForCheck();\n return;\n }\n\n // Reviews\n this.reviews = data.reviews.filter(r => !r.isExternal);\n this.plusReviews = data.reviews.filter(r => r.isExternal);\n\n if (data.ratings) {\n this.ratings = [...data.ratings];\n }\n\n\n // Recommendations\n if (data.recommendations) {\n this.combinedRecs = [...data.recommendations.ownedSeries, ...data.recommendations.externalSeries];\n }\n\n this.hasRecommendations = this.combinedRecs.length > 0;\n\n this.isLoadingExtra = false;\n this.cdRef.markForCheck();\n });\n }\n\n setContinuePoint() {\n this.readerService.hasSeriesProgress(this.seriesId).subscribe(hasProgress => {\n this.hasReadingProgress = hasProgress;\n this.cdRef.markForCheck();\n });\n this.readerService.getCurrentChapter(this.seriesId).subscribe(chapter => {\n this.currentlyReadingChapter = chapter;\n this.cdRef.markForCheck();\n });\n }\n\n markVolumeAsRead(vol: Volume) {\n if (this.series === undefined) {\n return;\n }\n\n this.actionService.markVolumeAsRead(this.seriesId, vol, () => {\n this.setContinuePoint();\n });\n }\n\n markVolumeAsUnread(vol: Volume) {\n if (this.series === undefined) {\n return;\n }\n\n this.actionService.markVolumeAsUnread(this.seriesId, vol, () => {\n this.setContinuePoint();\n });\n }\n\n markChapterAsRead(chapter: Chapter) {\n if (this.series === undefined) {\n return;\n }\n\n this.actionService.markChapterAsRead(this.libraryId, this.seriesId, chapter, () => {\n this.setContinuePoint();\n });\n }\n\n markChapterAsUnread(chapter: Chapter) {\n if (this.series === undefined) {\n return;\n }\n\n this.actionService.markChapterAsUnread(this.libraryId, this.seriesId, chapter, () => {\n this.setContinuePoint();\n });\n }\n\n read(incognitoMode: boolean = false) {\n if (this.currentlyReadingChapter !== undefined) {\n this.openChapter(this.currentlyReadingChapter, incognitoMode);\n return;\n }\n\n this.readerService.getCurrentChapter(this.seriesId).subscribe(chapter => {\n this.openChapter(chapter, incognitoMode);\n });\n }\n\n openChapter(chapter: Chapter, incognitoMode = false) {\n if (this.bulkSelectionService.hasSelections()) return;\n this.router.navigate(['library', this.libraryId, 'series', this.seriesId, 'chapter', chapter.id]);\n\n this.readerService.readChapter(this.libraryId, this.seriesId, chapter, incognitoMode);\n\n }\n\n openVolume(volume: Volume) {\n if (this.bulkSelectionService.hasSelections()) return;\n if (volume.chapters === undefined || volume.chapters?.length === 0) {\n this.toastr.error(this.translocoService.translate('series-detail.no-chapters'));\n return;\n }\n\n this.router.navigate(['library', this.libraryId, 'series', this.seriesId, 'volume', volume.id]);\n return;\n\n\n this.readerService.readVolume(this.libraryId, this.seriesId, volume, false);\n }\n\n openEditChapter(chapter: Chapter) {\n const ref = this.modalService.open(EditChapterModalComponent, DefaultModalOptions);\n ref.componentInstance.chapter = chapter;\n ref.componentInstance.libraryType = this.libraryType;\n ref.componentInstance.seriesId = this.series?.id;\n ref.componentInstance.libraryId = this.series?.libraryId;\n\n ref.closed.subscribe((res: EditChapterModalCloseResult) => {\n if (res.success && res.isDeleted) {\n this.loadPageSource.next(false);\n }\n });\n }\n\n openEditVolume(volume: Volume) {\n const ref = this.modalService.open(EditVolumeModalComponent, DefaultModalOptions);\n ref.componentInstance.volume = volume;\n ref.componentInstance.libraryType = this.libraryType;\n ref.componentInstance.seriesId = this.series?.id;\n ref.componentInstance.libraryId = this.series?.libraryId;\n\n ref.closed.subscribe((res: EditChapterModalCloseResult) => {\n if (res.success && res.isDeleted) {\n this.loadPageSource.next(false);\n }\n });\n }\n\n openEditSeriesModal() {\n const modalRef = this.modalService.open(EditSeriesModalComponent, DefaultModalOptions);\n modalRef.componentInstance.series = this.series;\n modalRef.closed.subscribe((closeResult: EditSeriesModalCloseResult) => {\n if (closeResult.success) {\n window.scrollTo(0, 0);\n this.loadPageSource.next(closeResult.updateExternal);\n } else if (closeResult.updateExternal) {\n this.loadPageSource.next(closeResult.updateExternal);\n }\n });\n }\n\n getUserReview() {\n return this.reviews.filter(r => r.username === this.user?.username && !r.isExternal);\n }\n\n openReviewModal() {\n const userReview = this.getUserReview();\n\n const modalRef = this.modalService.open(ReviewSeriesModalComponent, DefaultModalOptions);\n modalRef.componentInstance.series = this.series;\n if (userReview.length > 0) {\n modalRef.componentInstance.review = userReview[0];\n } else {\n modalRef.componentInstance.review = {\n seriesId: this.series.id,\n tagline: '',\n body: ''\n };\n }\n\n modalRef.closed.subscribe((closeResult) => {\n this.updateOrDeleteReview(closeResult);\n });\n\n }\n\n updateOrDeleteReview(closeResult: ReviewSeriesModalCloseEvent) {\n if (closeResult.action === ReviewSeriesModalCloseAction.Close) return;\n\n const index = this.reviews.findIndex(r => r.username === closeResult.review!.username);\n if (closeResult.action === ReviewSeriesModalCloseAction.Edit) {\n if (index === -1 ) {\n // A new series was added:\n this.reviews = [closeResult.review, ...this.reviews];\n this.cdRef.markForCheck();\n return;\n }\n // An edit occurred\n this.reviews[index] = closeResult.review;\n this.cdRef.markForCheck();\n return;\n }\n\n if (closeResult.action === ReviewSeriesModalCloseAction.Delete) {\n // An edit occurred\n this.reviews = [...this.reviews.filter(r => r.username !== closeResult.review!.username)];\n this.cdRef.markForCheck();\n return;\n }\n }\n\n\n performAction(action: ActionItem) {\n if (typeof action.callback === 'function') {\n action.callback(action, this.series);\n }\n }\n\n downloadSeries() {\n this.downloadService.download('series', this.series, (d) => {\n this.downloadInProgress = !!d;\n this.cdRef.markForCheck();\n });\n }\n\n toggleWantToRead() {\n if (this.isWantToRead) {\n this.actionService.removeMultipleSeriesFromWantToReadList([this.series.id]);\n } else {\n this.actionService.addMultipleSeriesToWantToReadList([this.series.id]);\n }\n\n this.isWantToRead = !this.isWantToRead;\n this.cdRef.markForCheck();\n }\n\n openFilter(field: FilterField, value: string | number) {\n this.filterUtilityService.applyFilter(['all-series'], field, FilterComparison.Equal, `${value}`).subscribe();\n }\n\n\n toggleScrobbling(evt: any) {\n evt.stopPropagation();\n if (this.isScrobbling) {\n this.scrobbleService.addHold(this.series.id).subscribe(() => {\n this.isScrobbling = !this.isScrobbling;\n this.cdRef.markForCheck();\n });\n } else {\n this.scrobbleService.removeHold(this.series.id).subscribe(() => {\n this.isScrobbling = !this.isScrobbling;\n this.cdRef.markForCheck();\n });\n }\n }\n\n switchTabsToDetail() {\n this.activeTabId = TabID.Details;\n this.cdRef.markForCheck();\n setTimeout(() => {\n const tabElem = this.document.querySelector('#details-tab');\n if (tabElem) {\n (tabElem as HTMLLIElement).scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\n }\n }, 10);\n }\n}\n","\n \n\n @if (series && seriesMetadata && libraryType !== null) {\n
\n
\n
\n \n
\n\n
\n

\n {{series.name}}\n\n @if(isLoadingExtra || isLoading) {\n
\n loading...\n
\n }\n
\n\n

\n
\n @if (series.localizedName !== series.name) {\n {{series.localizedName | defaultValue}}\n }\n
\n\n \n \n\n \n
\n \n \n
\n\n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n\n
\n \n
\n\n @if (isAdmin) {\n
\n \n
\n }\n\n @if ((accountService.hasValidLicense$ | async) && libraryAllowsScrobbling) {\n
\n \n
\n }\n\n
\n
\n \n
\n
\n\n
\n \n
\n\n
\n
\n\n
\n = Breakpoint.Desktop ? 585 : 200\">\n
\n\n
\n
\n
\n {{t('writers-title')}}\n
\n \n \n {{item.name}}\n \n \n
\n
\n
\n {{t('publication-status-title')}}\n
\n @if (seriesMetadata.publicationStatus | publicationStatus; as pubStatus) {\n \n {{pubStatus}}\n \n }\n
\n
\n
\n
\n\n
\n
\n
\n {{t('genres-title')}}\n
\n \n \n {{item.title}}\n \n \n
\n
\n\n
\n {{t('tags-title')}}\n
\n \n \n {{item.title}}\n \n \n
\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n\n\n \n @if (nextExpectedChapter) {\n @switch (tabId) {\n @case (TabID.Volumes) {\n @if (nextExpectedChapter.volumeNumber !== SpecialVolumeNumber && nextExpectedChapter.chapterNumber === LooseLeafOrSpecialNumber) {\n \n }\n }\n @case (TabID.Chapters) {\n \n }\n @case (TabID.Storyline) {\n \n }\n }\n }\n \n }\n\n\n
\n\n\n \n \n\n\n\n \n \n\n\n\n \n \n\n"],"mappings":"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","names":["ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","t_r2","ɵɵproperty","info_r1","ɵɵsanitizeHtml","ɵɵtemplate","NextExpectedCardComponent_ng_container_0_Conditional_5_Conditional_0_Template","ɵɵconditional","ctx","ɵɵelementContainerStart","NextExpectedCardComponent_ng_container_0_Conditional_5_Template","ɵɵpureFunction0","_c0","ctx_r2","imageUrl","tmp_4_0","ɵɵpipeBind1","entity","title","ɵɵtextInterpolate1","NextExpectedCardComponent","constructor","cdRef","inject","ChangeDetectorRef","ngOnInit","expectedDate","utcPipe","UtcToLocalTimePipe","translate","date","transform","markForCheck","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","NextExpectedCardComponent_ng_container_0_Template","ImageComponent","SafeHtmlPipe","TranslocoDirective","styles","changeDetection","ɵɵelement","ɵɵproperty","ɵɵpureFunction0","_c0","ctx_r1","imageService","getVolumeCoverImage","volume","id","errorImage","ɵɵelementStart","ɵɵelementEnd","ɵɵpropertyInterpolate1","ɵɵpipeBind2","pagesRead","pages","ɵɵadvance","ɵɵtext","ɵɵtextInterpolate1","t_r3","ɵɵlistener","$event","ɵɵrestoreView","_r4","ɵɵnextContext","ɵɵresetView","handleSelection","ɵɵclassMapInterpolate1","bulkSelectionService","hasSelections","selected","_c1","_r5","performAction","actions","name","ɵɵtemplate","VolumeCardComponent_ng_container_0_Conditional_18_Conditional_4_Template","ɵɵconditional","length","_r6","ɵɵelementContainerStart","_r1","handleClick","VolumeCardComponent_ng_container_0_Conditional_3_Template","VolumeCardComponent_ng_container_0_Conditional_4_Template","VolumeCardComponent_ng_container_0_Conditional_6_Template","VolumeCardComponent_ng_container_0_Conditional_9_Template","VolumeCardComponent_ng_container_0_Conditional_10_Template","VolumeCardComponent_ng_container_0_Conditional_11_Template","read","VolumeCardComponent_ng_container_0_Conditional_18_Template","VolumeCardComponent_ng_container_0_Conditional_24_Template","suppressArchiveWarning","download$","allowSelection","libraryType","LibraryType","LightNovel","Book","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate3","libraryId","seriesId","VolumeCardComponent","constructor","destroyRef","inject","DestroyRef","ImageService","BulkSelectionService","downloadService","DownloadService","actionService","ActionService","messageHub","MessageHubService","accountService","AccountService","scrollService","ScrollService","cdRef","ChangeDetectorRef","router","Router","readerService","ReaderService","utilityService","UtilityService","selection","EventEmitter","prevTouchTime","prevOffset","selectionInProgress","onTouchMove","event","markForCheck","onTouchStart","timeStamp","scrollPosition","onTouchEnd","delta","verticalOffset","stopPropagation","preventDefault","ngOnInit","filterSendTo","currentUser$","pipe","takeUntilDestroyed","subscribe","user","activeDownloads$","map","events","mapToEntityType","messages$","filter","EVENTS","UserProgressUpdate","evt","payload","updateEvent","undefined","username","volumeId","sum","chapters","c","forEach","chapter","detectChanges","emit","action","Action","Download","download","SendTo","device","_extra","data","sendToDevice","callback","navigate","console","log","readVolume","selectors","hostBindings","rf","ctx","VolumeCardComponent_ng_container_0_Template","CardActionablesComponent","DecimalPipe","DownloadIndicatorComponent","ImageComponent","NgbProgressbar","NgbTooltip","RouterLink","Select2Module","CheckboxControlValueAccessor","NgControlStatus","NgModel","TranslocoDirective","styles","changeDetection","NgxStarsComponent_div_2_Template","rf","ctx","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","$event","star_r2","ɵɵrestoreView","ctx_r2","ɵɵnextContext","ɵɵresetView","ɵɵelement","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵclassProp","NgxStarsComponent","EventEmitter","elem","index","EditableStar","style","key","starType","classname","clazz","rating","event","clickedStar","clickedInFirstHalf","star","starNumber","starIcon","__ngFactoryType__","ɵɵdefineComponent","ɵɵtemplate","ɵɵattribute","ɵɵstyleProp","NgClass","NgForOf","NgStyle","position","NgxStarsModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","close","$event","updateRating","ɵɵadvance","ɵɵtextInterpolate","t_r3","ɵɵproperty","userRating","starColor","ɵɵtextInterpolate1","RatingModalComponent","constructor","modal","inject","NgbActiveModal","themeService","ThemeService","seriesService","SeriesService","cdRef","ChangeDetectorRef","Breakpoint","getCssVariable","rating","seriesId","subscribe","hasUserRated","markForCheck","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","RatingModalComponent_ng_container_0_Template","TranslocoDirective","NgxStarsModule","NgxStarsComponent","changeDetection","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openRatingModal","ɵɵelementContainer","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","kavitaRating_r3","popContent_r5","t_r4","ɵɵtemplate","ExternalRatingComponent_ng_container_0_Conditional_2_Conditional_0_Template","ExternalRatingComponent_ng_container_0_Conditional_2_Conditional_1_Template","ɵɵconditional","ctx","Breakpoint","Tablet","ɵɵelement","ɵɵtext","externalPopContent_r7","ɵɵpureFunction1","_c0","rating_r6","ɵɵpipeBind1","provider","ɵɵpipeBind2","ɵɵtextInterpolate1","averageScore","link_r8","ɵɵsanitizeUrl","imageService","getWebLinkImage","errorWebLinkImage","userRating","overallRating","ExternalRatingComponent_ng_container_0_ng_template_11_Conditional_2_Template","ExternalRatingComponent_ng_container_0_ng_template_11_Conditional_3_Template","ExternalRatingComponent_ng_container_0_ng_template_11_Conditional_4_Template","ExternalRatingComponent_ng_container_0_ng_template_11_Conditional_5_Template","hasUserRated","$event","_r9","updateRating","starColor","rating_r10","providerUrl","ɵɵtextInterpolate","ExternalRatingComponent_ng_container_0_ng_template_15_Conditional_3_Template","favoriteCount","ɵɵelementContainerStart","ExternalRatingComponent_ng_container_0_Conditional_2_Template","ɵɵrepeaterCreate","ExternalRatingComponent_ng_container_0_For_5_Template","_forTrack0","ExternalRatingComponent_ng_container_0_For_10_Template","ɵɵrepeaterTrackByIdentity","ExternalRatingComponent_ng_container_0_ng_template_11_Template","ɵɵtemplateRefExtractor","ExternalRatingComponent_ng_container_0_ng_template_13_Template","ExternalRatingComponent_ng_container_0_ng_template_15_Template","tmp_5_0","utilityService","activeBreakpoint$","ɵɵrepeater","ratings","isLoading","webLinks","ExternalRatingComponent","constructor","cdRef","inject","ChangeDetectorRef","seriesService","SeriesService","themeService","ThemeService","UtilityService","destroyRef","DestroyRef","ImageService","modalService","NgbModal","getCssVariable","ngOnInit","getOverallRating","seriesId","subscribe","r","rating","markForCheck","modalRef","open","RatingModalComponent","size","componentInstance","closed","updated","selectors","inputs","libraryType","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ExternalRatingComponent_ng_container_0_Template","ProviderImagePipe","NgbPopover","LoadingComponent","ProviderNamePipe","NgxStarsModule","NgxStarsComponent","ImageComponent","TranslocoDirective","SafeHtmlPipe","NgOptimizedImage","AsyncPipe","NgTemplateOutlet","styles","encapsulation","changeDetection","$item","pagesRead","NgTemplateOutlet","RelatedTabComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r1","series","localizedName","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","openEditSeriesModal","ɵɵelement","ɵɵproperty","t_r4","$event","_r5","toggleScrobbling","ɵɵclassMapInterpolate1","isScrobbling","ɵɵpropertyInterpolate1","item_r6","name","_r7","openFilter","FilterField","PublicationStatus","seriesMetadata","publicationStatus","totalCount","maxCount","ɵɵtextInterpolate1","ctx","item_r9","_r8","$implicit","Genres","id","title","item_r11","_r10","Tags","ɵɵelementContainer","nonSpecialChapterCard_r16","ɵɵpureFunction4","_c4","item_r13","chapter","scroll_r15","ɵ$index_193_r14","storyChapters","length","nonChapterVolumeCard_r17","_c5","volume","volumes","ɵɵtemplate","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_ng_template_3_Defer_0_For_5_Conditional_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_ng_template_3_Defer_0_For_5_Conditional_1_Template","ɵɵconditional","isChapter","ɵɵrepeaterCreate","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_ng_template_3_Defer_0_For_5_Template","ɵɵrepeaterTrackByIdentity","storylineItems","scrollingBlock_r18","ɵɵrepeater","viewPortItems","estimatedNextCard_r19","ɵɵpureFunction1","_c3","TabID","Storyline","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_ng_template_3_Defer_0_Template","ɵɵdefer","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_ng_template_3_Defer_1_DepsFn","ɵɵdeferPrefetchOnIdle","ɵɵdeferWhen","activeTabId","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_ng_template_3_Template","_c6","item_r20","scroll_r22","ɵ$index_219_r21","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_82_ng_template_5_Defer_0_For_5_Template","_forTrack0","Volumes","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_82_ng_template_5_Defer_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_82_ng_template_5_Template","UseBookLogic","item_r23","scroll_r25","ɵ$index_241_r24","chapters","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_83_ng_template_5_Defer_0_For_5_Template","_forTrack1","Chapters","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_83_ng_template_5_Defer_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_83_ng_template_5_Template","utilityService","formatChapterName","libraryType","specialChapterCard_r29","item_r26","scroll_r28","ɵ$index_263_r27","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_84_ng_template_5_Defer_0_For_5_Template","_forTrack2","specials","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_84_ng_template_5_Defer_0_Template","Specials","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_84_ng_template_5_Template","readingLists","collections","relations","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_85_ng_template_5_Defer_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_85_ng_template_5_Defer_1_DepsFn","Related","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_85_ng_template_5_Template","item_r30","libraryId","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_ng_template_5_Defer_0_For_5_Conditional_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_ng_template_5_Defer_0_For_5_Conditional_1_Template","hasOwnProperty","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_ng_template_5_Defer_0_For_5_Template","ɵɵrepeaterTrackByIndex","combinedRecs","scroll_r31","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_ng_template_5_Defer_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_ng_template_5_Defer_1_DepsFn","Recommendations","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_ng_template_5_Template","_r33","updateOrDeleteReview","item_r34","item_r35","_r32","openReviewModal","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_92_Defer_0_ng_template_2_Template","ɵɵtemplateRefExtractor","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_92_Defer_0_ng_template_6_Template","getUserReview","reviews","plusReviews","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_92_Defer_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_92_Defer_1_DepsFn","Reviews","genres","tags","WebLinks","releaseYear","language","format","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_93_ng_template_3_Defer_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_93_ng_template_3_Defer_1_DepsFn","Details","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_93_ng_template_3_Template","nextExpectedChapter","imageService","getSeriesCoverImage","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_95_Conditional_0_Case_0_Conditional_0_Template","volumeNumber","SpecialVolumeNumber","chapterNumber","LooseLeafOrSpecialNumber","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_95_Conditional_0_Case_0_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_95_Conditional_0_Case_1_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_95_Conditional_0_Case_2_Template","tmp_15_0","tabId_r36","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_95_Conditional_0_Template","_r1","read","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_9_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_11_Template","toggleWantToRead","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_36_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_37_Template","performAction","switchTabsToDetail","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_54_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_60_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_69_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_76_Template","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","onNavChange","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_81_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_82_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_83_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_84_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_85_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_86_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_92_Template","SeriesDetailComponent_ng_container_0_Conditional_2_Conditional_93_Template","SeriesDetailComponent_ng_container_0_Conditional_2_ng_template_95_Template","_c2","ScrollingBlockHeight","mobileSeriesImgBackground","ContinuePointTitle","isLoadingExtra","isLoading","readingTimeLeft","ageRating","hasReadingProgress","ratings","userRating","hasUserRated","ɵɵpropertyInterpolate","isWantToRead","isAdmin","accountService","hasValidLicense$","libraryAllowsScrobbling","seriesActions","download$","summary","activeBreakpoint$","Breakpoint","Desktop","writers","tmp_53_0","ɵɵtwoWayProperty","showStorylineTab","showVolumeTab","showChapterTab","hasSpecials","hasRelations","hasRecommendations","showDetailsTab","nav_r37","ɵɵelementContainerStart","SeriesDetailComponent_ng_container_0_Conditional_2_Template","bulkActionCallback","ctx_r38","_r38","scroll_r40","scroll","idx_r41","idx","totalLength_r42","totalLength","bulkSelectionService","handleCardSelection","viewPortInfo","startIndexWithBuffer","item_r43","chapterActions","isCardSelected","ctx_r44","_r44","scroll_r46","idx_r47","totalLength_r48","item_r49","seriesId","volumeActions","ctx_r50","_r50","scroll_r52","idx_r53","totalLength_r54","item_r55","SeriesDetailComponent","LibraryType","Book","LightNovel","webLinks","split","scrollingBlock","undefined","navbar","document","querySelector","companionHeight","companionBar","nativeElement","offsetHeight","navbarHeight","currentlyReadingChapter","isSpecial","vol","filter","v","volumeId","chapterLocaleKey","volumeLocaleKey","ComicVine","Comic","Manga","Images","minNumber","LooseLeafOrDefaultNumber","titleName","translate","num","constructor","destroyRef","inject","DestroyRef","route","ActivatedRoute","seriesService","SeriesService","metadataService","MetadataService","router","Router","modalService","NgbModal","toastr","ToastrService","AccountService","actionFactoryService","ActionFactoryService","libraryService","LibraryService","titleService","Title","downloadService","DownloadService","actionService","ActionService","messageHub","MessageHubService","readingListService","ReadingListService","collectionTagService","CollectionTagService","cdRef","ChangeDetectorRef","scrollService","ScrollService","translocoService","TranslocoService","BulkSelectionService","UtilityService","ImageService","navService","NavService","readerService","ReaderService","themeService","ThemeService","filterUtilityService","FilterUtilitiesService","scrobbleService","ScrobblingService","location","Location","SettingsTabId","AgeRating","hasDownloadingRole","unreadCount","seriesImage","downloadInProgress","loadPageSource","ReplaySubject","loadPage$","asObservable","trackByVolumeIdentity","index","item","trackByChapterIdentity","maxNumber","relationShips","sortingOptions","value","text","renderMode","PageLayoutMode","Cards","pageExtrasGroup","FormGroup","FormControl","action","data","__async","selectedVolumeIndexes","getSelectedCardsForSource","selectedChapterIndexes","selectedSpecialIndexes","chapterArray","chapterIndexModifier","selectedChapterIds","_chapter","mappedIndex","includes","selectedVolumeIds","_volume","selectedSpecials","Action","AddToReadingList","addMultipleToReadingList","success","deselectAll","markForCheck","MarkAsRead","markMultipleAsRead","setContinuePoint","MarkAsUnread","markMultipleAsUnread","SendTo","device","_extra","sendToDevice","map","c","Delete","deleteMultipleChapters","routeReuseStrategy","shouldReuseRoute","currentUser$","subscribe","user","hasAdminRole","hasDownloadRole","preferences","globalPageLayoutMode","get","setValue","ngAfterContentChecked","setScrollContainer","ngOnInit","routeId","snapshot","paramMap","navigateByUrl","getComputedStyle","documentElement","getPropertyValue","trim","activeDownloads$","pipe","takeUntilDestroyed","events","mapToEntityType","debounceTime","tap","val","loadSeries","messages$","event","EVENTS","SeriesRemoved","payload","info","ScanSeries","next","CoverUpdate","refreshColorScape","ChapterRemoved","parseInt","hasHold","res","fragment","frag","updateUrl","valueChanges","nextId","activeTab","newUrl","path","replaceState","handleSeriesActionCallback","markSeriesAsRead","markSeriesAsUnread","Scan","scanSeries","RefreshMetadata","refreshSeriesMetadata","GenerateColorScape","deleteSeries","addSeriesToReadingList","AddToCollection","addMultipleSeriesToCollectionTag","AnalyzeFiles","analyzeFilesForSeries","AddToWantToReadList","addMultipleSeriesToWantToReadList","RemoveFromWantToReadList","removeMultipleSeriesFromWantToReadList","Download","downloadSeries","chapterIds","flat","handleVolumeActionCallback","markVolumeAsRead","markVolumeAsUnread","Edit","openEditVolume","deleteVolume","b","addVolumeToReadingList","IncognitoRead","openChapter","sort","sortChapters","handleChapterActionCallback","markChapterAsRead","markChapterAsUnread","openEditChapter","addChapterToReadingList","result","navigate","loadExternal","getMetadata","metadata","__spreadValues","Ended","OnGoing","getNextExpectedChapterDate","date","expectedDate","getReadingListsForSeries","lists","allCollectionsForSeries","getTimeLeft","timeLeft","forkJoin","libType","getLibraryType","getSeries","results","setColorScape","primaryColor","secondaryColor","loadPlusMetadata","List","setTitle","getVolumeActions","bind","getChapterActions","getSeriesActions","getRelatedForSeries","prequels","createRelatedSeries","RelationKind","Prequel","sequels","Sequel","sideStories","SideStory","spinOffs","SpinOff","adaptations","Adaptation","contains","Contains","characters","Character","others","Other","alternativeSettings","AlternativeSetting","alternativeVersions","AlternativeVersion","doujinshis","Doujinshi","parent","Parent","editions","Edition","annuals","Annual","getSeriesDetail","catchError","err","of","detail","storylineChapters","push","updateWhichTabsToShow","url","updateSelectedTab","relation","shouldShowStorylineTab","shouldShowVolumeTab","shouldShowChaptersTab","hasAnyCast","getSeriesMetadataFromPlus","r","isExternal","recommendations","ownedSeries","externalSeries","hasSeriesProgress","hasProgress","getCurrentChapter","incognitoMode","hasSelections","readChapter","openVolume","error","ref","open","EditChapterModalComponent","DefaultModalOptions","componentInstance","closed","isDeleted","EditVolumeModalComponent","modalRef","EditSeriesModalComponent","closeResult","window","scrollTo","updateExternal","username","userReview","ReviewSeriesModalComponent","review","tagline","body","ReviewSeriesModalCloseAction","Close","findIndex","callback","download","d","field","applyFilter","FilterComparison","Equal","evt","stopPropagation","addHold","removeHold","setTimeout","tabElem","scrollIntoView","behavior","block","inline","ɵɵdirectiveInject","DOCUMENT","selectors","viewQuery","rf","SeriesDetailComponent_ng_container_0_Template","SeriesDetailComponent_ng_template_1_Template","SeriesDetailComponent_ng_template_3_Template","SeriesDetailComponent_ng_template_5_Template","CardActionablesComponent","ReactiveFormsModule","NgStyle","NgbTooltip","NgbDropdown","NgbDropdownToggle","NgbDropdownMenu","NgbDropdownItem","BulkOperationsComponent","NgbNav","NgbNavItem","NgbNavLink","NgbNavContent","VirtualScrollerModule","NgbNavOutlet","TranslocoDirective","NextExpectedCardComponent","NgClass","AsyncPipe","ChapterCardComponent","VolumeCardComponent","DefaultValuePipe","ExternalRatingComponent","ReadMoreComponent","RouterLink","BadgeExpanderComponent","PublicationStatusPipe","MetadataDetailRowComponent","DownloadButtonComponent","CoverImageComponent","styles","changeDetection"],"x_google_ignoreList":[4]}