{ "version": 3, "sources": ["src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component.ts", "src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component.html", "src/app/collections/_components/all-collections/all-collections.component.ts", "src/app/collections/_components/all-collections/all-collections.component.html", "src/app/collections/_components/collection-detail/collection-detail.component.ts", "src/app/collections/_components/collection-detail/collection-detail.component.html", "src/app/_routes/collections-routing.module.ts"], "sourcesContent": ["import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, Input, OnInit} from '@angular/core';\r\nimport {FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {\r\n NgbActiveModal,\r\n NgbNav,\r\n NgbNavContent,\r\n NgbNavItem,\r\n NgbNavLink,\r\n NgbNavOutlet,\r\n NgbPagination,\r\n NgbTooltip\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {debounceTime, distinctUntilChanged, forkJoin, switchMap, tap} from 'rxjs';\r\nimport {ConfirmService} from 'src/app/shared/confirm.service';\r\nimport {Breakpoint, UtilityService} from 'src/app/shared/_services/utility.service';\r\nimport {SelectionModel} from 'src/app/typeahead/_components/typeahead.component';\r\nimport {UserCollection} from 'src/app/_models/collection-tag';\r\nimport {Pagination} from 'src/app/_models/pagination';\r\nimport {Series} from 'src/app/_models/series';\r\nimport {CollectionTagService} from 'src/app/_services/collection-tag.service';\r\nimport {ImageService} from 'src/app/_services/image.service';\r\nimport {LibraryService} from 'src/app/_services/library.service';\r\nimport {SeriesService} from 'src/app/_services/series.service';\r\nimport {UploadService} from 'src/app/_services/upload.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {CommonModule, DatePipe, DecimalPipe, NgIf, NgTemplateOutlet} from \"@angular/common\";\r\nimport {CoverImageChooserComponent} from \"../../cover-image-chooser/cover-image-chooser.component\";\r\nimport {translate, TranslocoDirective} from \"@ngneat/transloco\";\r\nimport {ScrobbleProvider} from \"../../../_services/scrobbling.service\";\r\nimport {FilterPipe} from \"../../../_pipes/filter.pipe\";\r\nimport {ScrobbleError} from \"../../../_models/scrobbling/scrobble-error\";\r\nimport {AccountService} from \"../../../_services/account.service\";\r\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\r\nimport {ReadMoreComponent} from \"../../../shared/read-more/read-more.component\";\r\nimport {SafeHtmlPipe} from \"../../../_pipes/safe-html.pipe\";\r\nimport {SafeUrlPipe} from \"../../../_pipes/safe-url.pipe\";\r\nimport {MangaFormatPipe} from \"../../../_pipes/manga-format.pipe\";\r\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\r\nimport {TagBadgeComponent} from \"../../../shared/tag-badge/tag-badge.component\";\r\n\r\n\r\nenum TabID {\r\n General = 'general-tab',\r\n CoverImage = 'cover-image-tab',\r\n Series = 'series-tab',\r\n Info = 'info-tab'\r\n}\r\n\r\n@Component({\r\n selector: 'app-edit-collection-tags',\r\n standalone: true,\r\n imports: [NgbNav, NgbNavItem, NgbNavLink, NgbNavContent, ReactiveFormsModule, FormsModule, NgbPagination,\r\n CoverImageChooserComponent, NgbNavOutlet, NgbTooltip, TranslocoDirective, NgTemplateOutlet, FilterPipe, DatePipe, DefaultDatePipe, ReadMoreComponent, SafeHtmlPipe, SafeUrlPipe, MangaFormatPipe, NgIf, SentenceCasePipe, TagBadgeComponent, DecimalPipe],\r\n templateUrl: './edit-collection-tags.component.html',\r\n styleUrls: ['./edit-collection-tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EditCollectionTagsComponent implements OnInit {\r\n\r\n public readonly modal = inject(NgbActiveModal);\r\n public readonly utilityService = inject(UtilityService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly seriesService = inject(SeriesService);\r\n private readonly collectionService = inject(CollectionTagService);\r\n private readonly toastr = inject(ToastrService);\r\n private readonly confirmService = inject(ConfirmService);\r\n private readonly libraryService = inject(LibraryService);\r\n private readonly imageService = inject(ImageService);\r\n private readonly uploadService = inject(UploadService);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n private readonly accountService = inject(AccountService);\r\n\r\n protected readonly Breakpoint = Breakpoint;\r\n protected readonly TabID = TabID;\r\n protected readonly ScrobbleProvider = ScrobbleProvider;\r\n\r\n @Input({required: true}) tag!: UserCollection;\r\n\r\n series: Array = [];\r\n selections!: SelectionModel;\r\n isLoading: boolean = true;\r\n\r\n pagination!: Pagination;\r\n selectAll: boolean = true;\r\n libraryNames!: any;\r\n collectionTagForm!: FormGroup;\r\n active = TabID.General;\r\n imageUrls: Array = [];\r\n selectedCover: string = '';\r\n formGroup = new FormGroup({'filter': new FormControl('', [])});\r\n\r\n\r\n get hasSomeSelected() {\r\n return this.selections != null && this.selections.hasSomeSelected();\r\n }\r\n\r\n filterList = (listItem: Series) => {\r\n const query = (this.formGroup.get('filter')?.value || '').toLowerCase();\r\n return listItem.name.toLowerCase().indexOf(query) >= 0 || listItem.localizedName.toLowerCase().indexOf(query) >= 0;\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n if (this.pagination == undefined) {\r\n this.pagination = {totalPages: 1, totalItems: 200, itemsPerPage: 200, currentPage: 0};\r\n }\r\n this.collectionTagForm = new FormGroup({\r\n title: new FormControl(this.tag.title, { nonNullable: true, validators: [Validators.required] }),\r\n summary: new FormControl(this.tag.summary, { nonNullable: true, validators: [] }),\r\n coverImageLocked: new FormControl(this.tag.coverImageLocked, { nonNullable: true, validators: [] }),\r\n coverImageIndex: new FormControl(0, { nonNullable: true, validators: [] }),\r\n promoted: new FormControl(this.tag.promoted, { nonNullable: true, validators: [] }),\r\n });\r\n\r\n if (this.tag.source !== ScrobbleProvider.Kavita) {\r\n this.collectionTagForm.get('title')?.disable();\r\n this.collectionTagForm.get('summary')?.disable();\r\n }\r\n\r\n this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {\r\n if (!user) return;\r\n if (!this.accountService.hasPromoteRole(user)) {\r\n this.collectionTagForm.get('promoted')?.disable();\r\n this.cdRef.markForCheck();\r\n }\r\n });\r\n\r\n\r\n this.collectionTagForm.get('title')?.valueChanges.pipe(\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n switchMap(name => this.collectionService.tagNameExists(name)),\r\n tap(exists => {\r\n const isExistingName = this.collectionTagForm.get('title')?.value === this.tag.title;\r\n if (!exists || isExistingName) {\r\n this.collectionTagForm.get('title')?.setErrors(null);\r\n } else {\r\n this.collectionTagForm.get('title')?.setErrors({duplicateName: true})\r\n }\r\n this.cdRef.markForCheck();\r\n }),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe();\r\n\r\n this.imageUrls.push(this.imageService.randomize(this.imageService.getCollectionCoverImage(this.tag.id)));\r\n this.loadSeries();\r\n }\r\n\r\n onPageChange(pageNum: number) {\r\n this.pagination.currentPage = pageNum;\r\n this.loadSeries();\r\n }\r\n\r\n toggleAll() {\r\n this.selectAll = !this.selectAll;\r\n this.series.forEach(s => this.selections.toggle(s, this.selectAll));\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n loadSeries() {\r\n forkJoin([\r\n this.seriesService.getSeriesForTag(this.tag.id, this.pagination.currentPage, this.pagination.itemsPerPage),\r\n this.libraryService.getLibraryNames()\r\n ]).subscribe(results => {\r\n const series = results[0];\r\n this.pagination = series.pagination;\r\n this.series = series.result;\r\n\r\n this.imageUrls.push(...this.series.map(s => this.imageService.getSeriesCoverImage(s.id)));\r\n this.selections = new SelectionModel(true, this.series);\r\n this.isLoading = false;\r\n\r\n this.libraryNames = results[1];\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n handleSelection(item: Series) {\r\n this.selections.toggle(item);\r\n const numberOfSelected = this.selections.selected().length;\r\n if (numberOfSelected == 0) {\r\n this.selectAll = false;\r\n } else if (numberOfSelected == this.series.length) {\r\n this.selectAll = true;\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n libraryName(libraryId: number) {\r\n return this.libraryNames[libraryId];\r\n }\r\n\r\n close() {\r\n this.modal.dismiss();\r\n }\r\n\r\n async save() {\r\n const selectedIndex = this.collectionTagForm.get('coverImageIndex')?.value || 0;\r\n const unselectedIds = this.selections.unselected().map(s => s.id);\r\n const tag = this.collectionTagForm.value;\r\n tag.id = this.tag.id;\r\n tag.title = this.collectionTagForm.get('title')!.value;\r\n tag.summary = this.collectionTagForm.get('summary')!.value;\r\n\r\n\r\n if (unselectedIds.length == this.series.length &&\r\n !await this.confirmService.confirm(translate('toasts.no-series-collection-warning'))) {\r\n return;\r\n }\r\n\r\n const apis = [\r\n this.collectionService.updateTag(tag),\r\n ];\r\n\r\n const unselectedSeries = this.selections.unselected().map(s => s.id);\r\n if (unselectedSeries.length > 0) {\r\n apis.push(this.collectionService.updateSeriesForTag(tag, unselectedSeries));\r\n }\r\n\r\n if (selectedIndex > 0) {\r\n apis.push(this.uploadService.updateCollectionCoverImage(this.tag.id, this.selectedCover));\r\n }\r\n\r\n forkJoin(apis).subscribe(() => {\r\n this.modal.close({success: true, coverImageUpdated: selectedIndex > 0});\r\n this.toastr.success(translate('toasts.collection-updated'));\r\n });\r\n }\r\n\r\n updateSelectedIndex(index: number) {\r\n this.collectionTagForm.patchValue({\r\n coverImageIndex: index\r\n });\r\n }\r\n\r\n updateSelectedImage(url: string) {\r\n this.selectedCover = url;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n handleReset() {\r\n this.collectionTagForm.patchValue({\r\n coverImageLocked: false\r\n });\r\n this.cdRef.markForCheck();\r\n }\r\n}\r\n", "\r\n\r\n
\r\n

{{t('title', {collectionName: tag.title})}}

\r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n {{t(TabID.General)}}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n @if (collectionTagForm.dirty || collectionTagForm.touched) {\r\n
    \r\n @if (collectionTagForm.get('title')?.errors?.required) {\r\n
    {{t('required-field')}}
    \r\n }\r\n @if (collectionTagForm.get('title')?.errors?.duplicateName) {\r\n
    {{t('name-validation')}}
    \r\n }\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{t('promote-tooltip')}}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
  • \r\n\r\n @if (tag.source === ScrobbleProvider.Kavita) {\r\n
  • \r\n {{t(TabID.Series)}}\r\n \r\n @if (!isLoading) {\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
      \r\n @for (item of series | filter: filterList; let i = $index; track item.id) {\r\n
    • \r\n
      \r\n \r\n \r\n
      \r\n
    • \r\n }\r\n
    \r\n @if (pagination && series.length !== 0 && pagination.totalPages > 1) {\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n
  • \r\n }\r\n\r\n
  • \r\n {{t(TabID.CoverImage)}}\r\n \r\n \r\n \r\n
  • \r\n\r\n @if (tag.source !== ScrobbleProvider.Kavita) {\r\n
  • \r\n {{t(TabID.Info)}}\r\n \r\n
    \r\n
    \r\n
    {{t('last-sync-title')}}
    \r\n
    {{tag.lastSyncUtc | date:'shortDate' | defaultDate}}
    \r\n
    \r\n
    \r\n
    {{t('source-url-title')}}
    \r\n {{tag.sourceUrl}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{t('total-series-title')}}
    \r\n
    {{tag.totalSourceCount | number}}
    \r\n
    \r\n
    \r\n
    {{t('missing-series-title')}}
    \r\n
    {{tag.totalSourceCount - series.length}}
    \r\n
    \r\n
    \r\n\r\n\r\n @if (tag.missingSeriesFromSource !== null && (tag.totalSourceCount - series.length) > 0) {\r\n
    {{t('missing-series-title')}}
    \r\n
    \r\n

    \r\n
    \r\n }\r\n
    \r\n
  • \r\n }\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n", "import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n OnInit\r\n} from '@angular/core';\r\nimport {Title} from '@angular/platform-browser';\r\nimport {Router} from '@angular/router';\r\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\r\nimport {map, of} from 'rxjs';\r\nimport {Observable} from 'rxjs/internal/Observable';\r\nimport {EditCollectionTagsComponent} from 'src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component';\r\nimport {UserCollection} from 'src/app/_models/collection-tag';\r\nimport {JumpKey} from 'src/app/_models/jumpbar/jump-key';\r\nimport {Tag} from 'src/app/_models/tag';\r\nimport {AccountService} from 'src/app/_services/account.service';\r\nimport {Action, ActionFactoryService, ActionItem} from 'src/app/_services/action-factory.service';\r\nimport {CollectionTagService} from 'src/app/_services/collection-tag.service';\r\nimport {ImageService} from 'src/app/_services/image.service';\r\nimport {JumpbarService} from 'src/app/_services/jumpbar.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {AsyncPipe, DecimalPipe} from '@angular/common';\r\nimport {CardItemComponent} from '../../../cards/card-item/card-item.component';\r\nimport {CardDetailLayoutComponent} from '../../../cards/card-detail-layout/card-detail-layout.component';\r\nimport {\r\n SideNavCompanionBarComponent\r\n} from '../../../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component';\r\nimport {translate, TranslocoDirective, TranslocoService} from \"@ngneat/transloco\";\r\nimport {ToastrService} from \"ngx-toastr\";\r\nimport {ScrobbleProvider} from \"../../../_services/scrobbling.service\";\r\nimport {ProviderImagePipe} from \"../../../_pipes/provider-image.pipe\";\r\nimport {ProviderNamePipe} from \"../../../_pipes/provider-name.pipe\";\r\nimport {CollectionOwnerComponent} from \"../collection-owner/collection-owner.component\";\r\nimport {User} from \"../../../_models/user\";\r\nimport {BulkOperationsComponent} from \"../../../cards/bulk-operations/bulk-operations.component\";\r\nimport {BulkSelectionService} from \"../../../cards/bulk-selection.service\";\r\nimport {SeriesCardComponent} from \"../../../cards/series-card/series-card.component\";\r\nimport {ActionService} from \"../../../_services/action.service\";\r\nimport {KEY_CODES} from \"../../../shared/_services/utility.service\";\r\nimport {WikiLink} from \"../../../_models/wiki\";\r\n\r\n\r\n@Component({\r\n selector: 'app-all-collections',\r\n templateUrl: './all-collections.component.html',\r\n styleUrls: ['./all-collections.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [SideNavCompanionBarComponent, CardDetailLayoutComponent, CardItemComponent, AsyncPipe, DecimalPipe, TranslocoDirective, ProviderImagePipe, ProviderNamePipe, CollectionOwnerComponent, BulkOperationsComponent, SeriesCardComponent]\r\n})\r\nexport class AllCollectionsComponent implements OnInit {\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly toastr = inject(ToastrService);\r\n private readonly collectionService = inject(CollectionTagService);\r\n private readonly router = inject(Router);\r\n private readonly actionFactoryService = inject(ActionFactoryService);\r\n private readonly modalService = inject(NgbModal);\r\n private readonly titleService = inject(Title);\r\n private readonly jumpbarService = inject(JumpbarService);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n public readonly imageService = inject(ImageService);\r\n public readonly accountService = inject(AccountService);\r\n public readonly bulkSelectionService = inject(BulkSelectionService);\r\n public readonly actionService = inject(ActionService);\r\n\r\n protected readonly ScrobbleProvider = ScrobbleProvider;\r\n protected readonly WikiLink = WikiLink;\r\n\r\n isLoading: boolean = true;\r\n collections: UserCollection[] = [];\r\n collectionTagActions: ActionItem[] = [];\r\n jumpbarKeys: Array = [];\r\n isAdmin$: Observable = of(false);\r\n filterOpen: EventEmitter = new EventEmitter();\r\n trackByIdentity = (index: number, item: UserCollection) => `${item.id}_${item.title}_${item.owner}_${item.promoted}`;\r\n user!: User;\r\n\r\n @HostListener('document:keydown.shift', ['$event'])\r\n handleKeypress(event: KeyboardEvent) {\r\n if (event.key === KEY_CODES.SHIFT) {\r\n this.bulkSelectionService.isShiftDown = true;\r\n }\r\n }\r\n\r\n @HostListener('document:keyup.shift', ['$event'])\r\n handleKeyUp(event: KeyboardEvent) {\r\n if (event.key === KEY_CODES.SHIFT) {\r\n this.bulkSelectionService.isShiftDown = false;\r\n }\r\n }\r\n\r\n\r\n constructor() {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.titleService.setTitle('Kavita - ' + this.translocoService.translate('all-collections.title'));\r\n this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {\r\n if (user) {\r\n this.user = user;\r\n this.cdRef.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.loadPage();\r\n\r\n this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {\r\n if (!user) return;\r\n this.collectionTagActions = this.actionFactoryService.getCollectionTagActions(this.handleCollectionActionCallback.bind(this))\r\n .filter(action => this.collectionService.actionListFilter(action, user));\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n\r\n this.isAdmin$ = this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef), map(user => {\r\n if (!user) return false;\r\n return this.accountService.hasAdminRole(user);\r\n }));\r\n }\r\n\r\n loadCollection(item: UserCollection) {\r\n this.router.navigate(['collections', item.id]);\r\n }\r\n\r\n loadPage() {\r\n this.isLoading = true;\r\n this.cdRef.markForCheck();\r\n this.collectionService.allCollections().subscribe(tags => {\r\n this.collections = [...tags];\r\n this.isLoading = false;\r\n this.jumpbarKeys = this.jumpbarService.getJumpKeys(tags, (t: Tag) => t.title);\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n handleCollectionActionCallback(action: ActionItem, collectionTag: UserCollection) {\r\n\r\n if (collectionTag.owner != this.user.username) {\r\n this.toastr.error(translate('toasts.collection-not-owned'));\r\n return;\r\n }\r\n\r\n switch (action.action) {\r\n case Action.Promote:\r\n this.collectionService.promoteMultipleCollections([collectionTag.id], true).subscribe(_ => this.loadPage());\r\n break;\r\n case Action.UnPromote:\r\n this.collectionService.promoteMultipleCollections([collectionTag.id], false).subscribe(_ => this.loadPage());\r\n break;\r\n case(Action.Delete):\r\n this.collectionService.deleteTag(collectionTag.id).subscribe(res => {\r\n this.loadPage();\r\n this.toastr.success(res);\r\n });\r\n break;\r\n case(Action.Edit):\r\n const modalRef = this.modalService.open(EditCollectionTagsComponent, { size: 'lg', scrollable: true });\r\n modalRef.componentInstance.tag = collectionTag;\r\n modalRef.closed.subscribe((results: {success: boolean, coverImageUpdated: boolean}) => {\r\n if (results.success) {\r\n this.loadPage();\r\n }\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n bulkActionCallback = (action: ActionItem, data: any) => {\r\n const selectedCollectionIndexies = this.bulkSelectionService.getSelectedCardsForSource('collection');\r\n const selectedCollections = this.collections.filter((col, index: number) => selectedCollectionIndexies.includes(index + ''));\r\n\r\n switch (action.action) {\r\n case Action.Promote:\r\n this.actionService.promoteMultipleCollections(selectedCollections, true, (success) => {\r\n if (!success) return;\r\n this.bulkSelectionService.deselectAll();\r\n this.loadPage();\r\n });\r\n break;\r\n case Action.UnPromote:\r\n this.actionService.promoteMultipleCollections(selectedCollections, false, (success) => {\r\n if (!success) return;\r\n this.bulkSelectionService.deselectAll();\r\n this.loadPage();\r\n });\r\n break;\r\n case Action.Delete:\r\n this.actionService.deleteMultipleCollections(selectedCollections, (successful) => {\r\n if (!successful) return;\r\n this.loadPage();\r\n this.bulkSelectionService.deselectAll();\r\n });\r\n break;\r\n }\r\n }\r\n}\r\n", "\r\n \r\n

{{t('title')}}

\r\n
{{t('item-count', {num: collections.length | number})}}
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{t('no-data')}}\r\n @if(isAdmin$ | async) {\r\n {{t('create-one-part-1')}} {{t('create-one-part-2')}}\r\n }\r\n \r\n \r\n\r\n
\r\n", "import {DatePipe, DOCUMENT, NgIf, NgStyle} from '@angular/common';\r\nimport {\r\n AfterContentChecked,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n Inject,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {Title} from '@angular/platform-browser';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {NgbModal, NgbTooltip} from '@ng-bootstrap/ng-bootstrap';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {debounceTime, take} from 'rxjs/operators';\r\nimport {BulkSelectionService} from 'src/app/cards/bulk-selection.service';\r\nimport {EditCollectionTagsComponent} from 'src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component';\r\nimport {FilterSettings} from 'src/app/metadata-filter/filter-settings';\r\nimport {FilterUtilitiesService} from 'src/app/shared/_services/filter-utilities.service';\r\nimport {Breakpoint, KEY_CODES, UtilityService} from 'src/app/shared/_services/utility.service';\r\nimport {UserCollection} from 'src/app/_models/collection-tag';\r\nimport {SeriesAddedToCollectionEvent} from 'src/app/_models/events/series-added-to-collection-event';\r\nimport {JumpKey} from 'src/app/_models/jumpbar/jump-key';\r\nimport {Pagination} from 'src/app/_models/pagination';\r\nimport {Series} from 'src/app/_models/series';\r\nimport {FilterEvent} from 'src/app/_models/metadata/series-filter';\r\nimport {Action, ActionFactoryService, ActionItem} from 'src/app/_services/action-factory.service';\r\nimport {ActionService} from 'src/app/_services/action.service';\r\nimport {CollectionTagService} from 'src/app/_services/collection-tag.service';\r\nimport {ImageService} from 'src/app/_services/image.service';\r\nimport {JumpbarService} from 'src/app/_services/jumpbar.service';\r\nimport {EVENTS, MessageHubService} from 'src/app/_services/message-hub.service';\r\nimport {ScrollService} from 'src/app/_services/scroll.service';\r\nimport {SeriesService} from 'src/app/_services/series.service';\r\nimport {SeriesCardComponent} from '../../../cards/series-card/series-card.component';\r\nimport {CardDetailLayoutComponent} from '../../../cards/card-detail-layout/card-detail-layout.component';\r\nimport {BulkOperationsComponent} from '../../../cards/bulk-operations/bulk-operations.component';\r\nimport {ReadMoreComponent} from '../../../shared/read-more/read-more.component';\r\nimport {ImageComponent} from '../../../shared/image/image.component';\r\n\r\nimport {\r\n SideNavCompanionBarComponent\r\n} from '../../../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {translate, TranslocoDirective, TranslocoService} from \"@ngneat/transloco\";\r\nimport {CardActionablesComponent} from \"../../../_single-module/card-actionables/card-actionables.component\";\r\nimport {FilterField} from \"../../../_models/metadata/v2/filter-field\";\r\nimport {FilterComparison} from \"../../../_models/metadata/v2/filter-comparison\";\r\nimport {SeriesFilterV2} from \"../../../_models/metadata/v2/series-filter-v2\";\r\nimport {AccountService} from \"../../../_services/account.service\";\r\nimport {User} from \"../../../_models/user\";\r\nimport {ScrobbleProvider} from \"../../../_services/scrobbling.service\";\r\nimport {SafeHtmlPipe} from \"../../../_pipes/safe-html.pipe\";\r\nimport {TranslocoDatePipe} from \"@ngneat/transloco-locale\";\r\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\r\nimport {ProviderImagePipe} from \"../../../_pipes/provider-image.pipe\";\r\nimport {ProviderNamePipe} from \"../../../_pipes/provider-name.pipe\";\r\n\r\n@Component({\r\n selector: 'app-collection-detail',\r\n templateUrl: './collection-detail.component.html',\r\n styleUrls: ['./collection-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [NgIf, SideNavCompanionBarComponent, CardActionablesComponent, NgStyle, ImageComponent, ReadMoreComponent, BulkOperationsComponent, CardDetailLayoutComponent, SeriesCardComponent, TranslocoDirective, NgbTooltip, SafeHtmlPipe, TranslocoDatePipe, DatePipe, DefaultDatePipe, ProviderImagePipe, ProviderNamePipe]\r\n})\r\nexport class CollectionDetailComponent implements OnInit, AfterContentChecked {\r\n\r\n public readonly imageService = inject(ImageService);\r\n public readonly bulkSelectionService = inject(BulkSelectionService);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly collectionService = inject(CollectionTagService);\r\n private readonly router = inject(Router);\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly seriesService = inject(SeriesService);\r\n private readonly toastr = inject(ToastrService);\r\n private readonly actionFactoryService = inject(ActionFactoryService);\r\n private readonly accountService = inject(AccountService);\r\n private readonly modalService = inject(NgbModal);\r\n private readonly titleService = inject(Title);\r\n private readonly jumpbarService = inject(JumpbarService);\r\n private readonly actionService = inject(ActionService);\r\n private readonly messageHub = inject(MessageHubService);\r\n private readonly filterUtilityService = inject(FilterUtilitiesService);\r\n protected readonly utilityService = inject(UtilityService);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n private readonly scrollService = inject(ScrollService);\r\n\r\n @ViewChild('scrollingBlock') scrollingBlock: ElementRef | undefined;\r\n @ViewChild('companionBar') companionBar: ElementRef | undefined;\r\n\r\n\r\n\r\n collectionTag!: UserCollection;\r\n isLoading: boolean = true;\r\n series: Array = [];\r\n pagination: Pagination = new Pagination();\r\n collectionTagActions: ActionItem[] = [];\r\n filter: SeriesFilterV2 | undefined = undefined;\r\n filterSettings: FilterSettings = new FilterSettings();\r\n summary: string = '';\r\n user!: User;\r\n\r\n actionInProgress: boolean = false;\r\n filterActiveCheck!: SeriesFilterV2;\r\n filterActive: boolean = false;\r\n\r\n jumpbarKeys: Array = [];\r\n\r\n filterOpen: EventEmitter = new EventEmitter();\r\n trackByIdentity = (index: number, item: Series) => `${item.name}_${item.localizedName}_${item.pagesRead}`;\r\n\r\n\r\n bulkActionCallback = (action: ActionItem, data: any) => {\r\n const selectedSeriesIndices = this.bulkSelectionService.getSelectedCardsForSource('series');\r\n const selectedSeries = this.series.filter((series, index: number) => selectedSeriesIndices.includes(index + ''));\r\n\r\n switch (action.action) {\r\n case Action.AddToReadingList:\r\n this.actionService.addMultipleSeriesToReadingList(selectedSeries, (success) => {\r\n if (success) this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.AddToWantToReadList:\r\n this.actionService.addMultipleSeriesToWantToReadList(selectedSeries.map(s => s.id), () => {\r\n this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.RemoveFromWantToReadList:\r\n this.actionService.removeMultipleSeriesFromWantToReadList(selectedSeries.map(s => s.id), () => {\r\n this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.AddToCollection:\r\n this.actionService.addMultipleSeriesToCollectionTag(selectedSeries, (success) => {\r\n if (success) this.bulkSelectionService.deselectAll();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.MarkAsRead:\r\n this.actionService.markMultipleSeriesAsRead(selectedSeries, () => {\r\n this.bulkSelectionService.deselectAll();\r\n this.loadPage();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.MarkAsUnread:\r\n this.actionService.markMultipleSeriesAsUnread(selectedSeries, () => {\r\n this.bulkSelectionService.deselectAll();\r\n this.loadPage();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n case Action.Delete:\r\n this.actionService.deleteMultipleSeries(selectedSeries, successful => {\r\n if (!successful) return;\r\n this.bulkSelectionService.deselectAll();\r\n this.loadPage();\r\n this.cdRef.markForCheck();\r\n });\r\n break;\r\n }\r\n }\r\n\r\n get ScrollingBlockHeight() {\r\n if (this.scrollingBlock === undefined) return 'calc(var(--vh)*100)';\r\n const navbar = this.document.querySelector('.navbar') as HTMLElement;\r\n if (navbar === null) return 'calc(var(--vh)*100)';\r\n\r\n const companionHeight = this.companionBar!.nativeElement.offsetHeight;\r\n const navbarHeight = navbar.offsetHeight;\r\n const totalHeight = companionHeight + navbarHeight + 21; //21px to account for padding\r\n return 'calc(var(--vh)*100 - ' + totalHeight + 'px)';\r\n }\r\n\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\r\n const routeId = this.route.snapshot.paramMap.get('id');\r\n if (routeId === null) {\r\n this.router.navigate(['collections']);\r\n return;\r\n }\r\n const tagId = parseInt(routeId, 10);\r\n\r\n this.filterUtilityService.filterPresetsFromUrl(this.route.snapshot).subscribe(filter => {\r\n this.filter = filter;\r\n\r\n if (this.filter.statements.filter(stmt => stmt.field === FilterField.CollectionTags).length === 0) {\r\n this.filter!.statements.push({field: FilterField.CollectionTags, value: tagId + '', comparison: FilterComparison.Equal});\r\n }\r\n this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();\r\n this.filterActiveCheck!.statements.push({field: FilterField.CollectionTags, value: tagId + '', comparison: FilterComparison.Equal});\r\n this.filterSettings.presetsV2 = this.filter;\r\n this.cdRef.markForCheck();\r\n\r\n this.updateTag(tagId);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {\r\n if (!user) return;\r\n this.user = user;\r\n this.collectionTagActions = this.actionFactoryService.getCollectionTagActions(this.handleCollectionActionCallback.bind(this))\r\n .filter(action => this.collectionService.actionListFilter(action, user));\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n\r\n this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(2000)).subscribe(event => {\r\n if (event.event == EVENTS.CollectionUpdated) {\r\n const collectionEvent = event.payload as SeriesAddedToCollectionEvent;\r\n if (collectionEvent.tagId === this.collectionTag.id) {\r\n this.loadPage();\r\n }\r\n } else if (event.event === EVENTS.SeriesRemoved) {\r\n this.loadPage();\r\n }\r\n });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.scrollService.setScrollContainer(this.scrollingBlock);\r\n }\r\n\r\n @HostListener('document:keydown.shift', ['$event'])\r\n handleKeypress(event: KeyboardEvent) {\r\n if (event.key === KEY_CODES.SHIFT) {\r\n this.bulkSelectionService.isShiftDown = true;\r\n }\r\n }\r\n\r\n @HostListener('document:keyup.shift', ['$event'])\r\n handleKeyUp(event: KeyboardEvent) {\r\n if (event.key === KEY_CODES.SHIFT) {\r\n this.bulkSelectionService.isShiftDown = false;\r\n }\r\n }\r\n\r\n updateTag(tagId: number) {\r\n this.collectionService.allCollections().subscribe(tags => {\r\n const matchingTags = tags.filter(t => t.id === tagId);\r\n if (matchingTags.length === 0) {\r\n this.toastr.error(this.translocoService.translate('errors.collection-invalid-access'));\r\n this.router.navigateByUrl('/');\r\n return;\r\n }\r\n\r\n this.collectionTag = matchingTags[0];\r\n this.summary = (this.collectionTag.summary === null ? '' : this.collectionTag.summary).replace(/\\n/g, '
');\r\n this.titleService.setTitle(this.translocoService.translate('collection-detail.title-alt', {collectionName: this.collectionTag.title}));\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n loadPage() {\r\n this.filterActive = !this.utilityService.deepEqual(this.filter, this.filterActiveCheck);\r\n this.isLoading = true;\r\n this.cdRef.markForCheck();\r\n\r\n this.seriesService.getAllSeriesV2(undefined, undefined, this.filter).pipe(take(1)).subscribe(series => {\r\n this.series = series.result;\r\n this.pagination = series.pagination;\r\n this.jumpbarKeys = this.jumpbarService.getJumpKeys(this.series, (series: Series) => series.name);\r\n this.isLoading = false;\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n updateFilter(data: FilterEvent) {\r\n if (data.filterV2 === undefined) return;\r\n this.filter = data.filterV2;\r\n\r\n if (data.isFirst) {\r\n this.loadPage();\r\n return;\r\n }\r\n\r\n this.filterUtilityService.updateUrlFromFilter(this.filter).subscribe((encodedFilter) => {\r\n this.loadPage();\r\n });\r\n }\r\n\r\n handleCollectionActionCallback(action: ActionItem, collectionTag: UserCollection) {\r\n if (collectionTag.owner != this.user.username) {\r\n this.toastr.error(translate('toasts.collection-not-owned'));\r\n return;\r\n }\r\n switch (action.action) {\r\n case Action.Promote:\r\n this.collectionService.promoteMultipleCollections([this.collectionTag.id], true).subscribe();\r\n break;\r\n case Action.UnPromote:\r\n this.collectionService.promoteMultipleCollections([this.collectionTag.id], false).subscribe();\r\n break;\r\n case(Action.Edit):\r\n this.openEditCollectionTagModal(this.collectionTag);\r\n break;\r\n case (Action.Delete):\r\n this.collectionService.deleteTag(this.collectionTag.id).subscribe(() => {\r\n this.toastr.success(translate('toasts.collection-tag-deleted'));\r\n this.router.navigateByUrl('collections');\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n performAction(action: ActionItem) {\r\n if (typeof action.callback === 'function') {\r\n action.callback(action, this.collectionTag);\r\n }\r\n }\r\n\r\n openEditCollectionTagModal(collectionTag: UserCollection) {\r\n const modalRef = this.modalService.open(EditCollectionTagsComponent, { size: 'lg', scrollable: true });\r\n modalRef.componentInstance.tag = this.collectionTag;\r\n modalRef.closed.subscribe((results: {success: boolean, coverImageUpdated: boolean}) => {\r\n this.updateTag(this.collectionTag.id);\r\n this.loadPage();\r\n });\r\n }\r\n\r\n protected readonly ScrobbleProvider = ScrobbleProvider;\r\n protected readonly Breakpoint = Breakpoint;\r\n}\r\n", "\r\n
\r\n \r\n \r\n

\r\n \r\n {{collectionTag.title}}()\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n @if (summary.length > 0 || collectionTag.source !== ScrobbleProvider.Kavita) {\r\n
\r\n
\r\n \r\n @if (collectionTag.source !== ScrobbleProvider.Kavita && collectionTag.missingSeriesFromSource !== null\r\n && series.length !== collectionTag.totalSourceCount && collectionTag.totalSourceCount > 0) {\r\n
\r\n \r\n {{t('sync-progress', {title: series.length + ' / ' + collectionTag.totalSourceCount})}}\r\n \r\n
\r\n }\r\n
\r\n
\r\n @if (summary.length > 0) {\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n }\r\n\r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{t('no-data')}}\r\n \r\n
\r\n\r\n
\r\n \r\n {{t('no-data-filtered')}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n", "import { Routes } from '@angular/router';\r\nimport { AllCollectionsComponent } from '../collections/_components/all-collections/all-collections.component';\r\nimport { CollectionDetailComponent } from '../collections/_components/collection-detail/collection-detail.component';\r\n\r\nexport const routes: Routes = [\r\n {path: '', component: AllCollectionsComponent, pathMatch: 'full'},\r\n {path: ':id', component: CollectionDetailComponent},\r\n];\r\n\r\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "t_r3", "\u0275\u0275template", "EditCollectionTagsComponent_ng_container_0_ng_template_11_Conditional_6_Conditional_1_Template", "EditCollectionTagsComponent_ng_container_0_ng_template_11_Conditional_6_Conditional_2_Template", "\u0275\u0275conditional", "tmp_6_0", "ctx_r1", "collectionTagForm", "get", "errors", "required", "tmp_7_0", "duplicateName", "\u0275\u0275element", "EditCollectionTagsComponent_ng_container_0_ng_template_11_Conditional_6_Template", "EditCollectionTagsComponent_ng_container_0_ng_template_11_ng_template_13_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275elementContainer", "\u0275\u0275property", "\u0275\u0275classProp", "invalid", "touched", "dirty", "promotedTooltip_r4", "\u0275\u0275listener", "item_r7", "\u0275\u0275restoreView", "_r6", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelection", "\u0275\u0275propertyInterpolate1", "i_r8", "tag", "source", "ScrobbleProvider", "Kavita", "selections", "isSelected", "\u0275\u0275textInterpolate2", "name", "libraryName", "libraryId", "\u0275\u0275twoWayListener", "$event", "_r9", "i0", "\u0275\u0275twoWayBindingSet", "pagination", "currentPage", "onPageChange", "\u0275\u0275twoWayProperty", "itemsPerPage", "totalItems", "_r5", "toggleAll", "\u0275\u0275repeaterCreate", "EditCollectionTagsComponent_ng_container_0_Conditional_12_ng_template_3_Conditional_0_For_14_Template", "_forTrack0", "EditCollectionTagsComponent_ng_container_0_Conditional_12_ng_template_3_Conditional_0_Conditional_16_Template", "formGroup", "selectAll", "hasSomeSelected", "\u0275\u0275repeater", "\u0275\u0275pipeBind2", "series", "filterList", "length", "totalPages", "EditCollectionTagsComponent_ng_container_0_Conditional_12_ng_template_3_Conditional_0_Template", "isLoading", "EditCollectionTagsComponent_ng_container_0_Conditional_12_ng_template_3_Template", "TabID", "Series", "_r10", "imageUrls", "updateSelectedIndex", "updateSelectedImage", "handleReset", "coverImageLocked", "\u0275\u0275pipeBind1", "missingSeriesFromSource", "\u0275\u0275sanitizeHtml", "EditCollectionTagsComponent_ng_container_0_Conditional_17_ng_template_3_Conditional_26_Template", "lastSyncUtc", "sourceUrl", "\u0275\u0275sanitizeUrl", "totalSourceCount", "EditCollectionTagsComponent_ng_container_0_Conditional_17_ng_template_3_Template", "Info", "\u0275\u0275elementContainerStart", "_r1", "close", "active", "EditCollectionTagsComponent_ng_container_0_ng_template_11_Template", "EditCollectionTagsComponent_ng_container_0_Conditional_12_Template", "EditCollectionTagsComponent_ng_container_0_ng_template_16_Template", "EditCollectionTagsComponent_ng_container_0_Conditional_17_Template", "save", "\u0275\u0275pureFunction1", "_c0", "title", "\u0275\u0275classMapInterpolate1", "utilityService", "getActiveBreakpoint", "Breakpoint", "Mobile", "\u0275\u0275propertyInterpolate", "General", "CoverImage", "nav_r11", "EditCollectionTagsComponent", "constructor", "modal", "inject", "NgbActiveModal", "UtilityService", "destroyRef", "DestroyRef", "seriesService", "SeriesService", "collectionService", "CollectionTagService", "toastr", "ToastrService", "confirmService", "ConfirmService", "libraryService", "LibraryService", "imageService", "ImageService", "uploadService", "UploadService", "cdRef", "ChangeDetectorRef", "accountService", "AccountService", "selectedCover", "FormGroup", "FormControl", "listItem", "query", "value", "toLowerCase", "indexOf", "localizedName", "ngOnInit", "undefined", "nonNullable", "validators", "Validators", "summary", "coverImageIndex", "promoted", "disable", "currentUser$", "pipe", "takeUntilDestroyed", "subscribe", "user", "hasPromoteRole", "markForCheck", "valueChanges", "debounceTime", "distinctUntilChanged", "switchMap", "tagNameExists", "tap", "exists", "isExistingName", "setErrors", "push", "randomize", "getCollectionCoverImage", "id", "loadSeries", "pageNum", "forEach", "s", "toggle", "forkJoin", "getSeriesForTag", "getLibraryNames", "results", "result", "map", "getSeriesCoverImage", "SelectionModel", "libraryNames", "item", "numberOfSelected", "selected", "dismiss", "__async", "selectedIndex", "unselectedIds", "unselected", "confirm", "translate", "apis", "updateTag", "unselectedSeries", "updateSeriesForTag", "updateCollectionCoverImage", "success", "coverImageUpdated", "index", "patchValue", "url", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "EditCollectionTagsComponent_ng_container_0_Template", "NgbNav", "NgbNavItem", "NgbNavLink", "NgbNavContent", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "CheckboxControlValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "FormsModule", "NgModel", "NgbPagination", "CoverImageChooserComponent", "NgbNavOutlet", "NgbTooltip", "TranslocoDirective", "NgTemplateOutlet", "FilterPipe", "DatePipe", "DefaultDatePipe", "SafeHtmlPipe", "SafeUrlPipe", "DecimalPipe", "styles", "changeDetection", "_EditCollectionTagsComponent", "\u0275\u0275element", "\u0275\u0275property", "item_r4", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "$implicit", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "loadCollection", "$event", "position_r5", "idx", "bulkSelectionService", "handleCardSelection", "collections", "length", "\u0275\u0275template", "AllCollectionsComponent_ng_container_0_ng_template_9_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275elementEnd", "title", "collectionTagActions", "imageService", "getCollectionCoverImage", "id", "isCardSelected", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "t_r6", "\u0275\u0275advance", "WikiLink", "Collections", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate", "AllCollectionsComponent_ng_container_0_ng_template_11_Conditional_1_Template", "\u0275\u0275conditional", "\u0275\u0275pipeBind1", "isAdmin$", "\u0275\u0275elementContainerStart", "_r1", "filterOpen", "emit", "AllCollectionsComponent_ng_container_0_ng_template_9_Template", "AllCollectionsComponent_ng_container_0_ng_template_11_Template", "\u0275\u0275pureFunction1", "_c0", "bulkActionCallback", "isLoading", "jumpbarKeys", "trackByIdentity", "AllCollectionsComponent", "handleKeypress", "event", "key", "KEY_CODES", "SHIFT", "isShiftDown", "handleKeyUp", "constructor", "destroyRef", "inject", "DestroyRef", "translocoService", "TranslocoService", "toastr", "ToastrService", "collectionService", "CollectionTagService", "router", "Router", "actionFactoryService", "ActionFactoryService", "modalService", "NgbModal", "titleService", "Title", "jumpbarService", "JumpbarService", "cdRef", "ChangeDetectorRef", "ImageService", "accountService", "AccountService", "BulkSelectionService", "actionService", "ActionService", "ScrobbleProvider", "of", "EventEmitter", "index", "item", "owner", "promoted", "action", "data", "selectedCollectionIndexies", "getSelectedCardsForSource", "selectedCollections", "filter", "col", "includes", "Action", "Promote", "promoteMultipleCollections", "success", "deselectAll", "loadPage", "UnPromote", "Delete", "deleteMultipleCollections", "successful", "routeReuseStrategy", "shouldReuseRoute", "setTitle", "translate", "currentUser$", "pipe", "takeUntilDestroyed", "subscribe", "user", "markForCheck", "ngOnInit", "getCollectionTagActions", "handleCollectionActionCallback", "bind", "actionListFilter", "map", "hasAdminRole", "navigate", "allCollections", "tags", "getJumpKeys", "t", "collectionTag", "username", "error", "_", "deleteTag", "res", "Edit", "modalRef", "open", "EditCollectionTagsComponent", "size", "scrollable", "componentInstance", "tag", "closed", "results", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275resolveDocument", "AllCollectionsComponent_ng_container_0_Template", "SideNavCompanionBarComponent", "CardDetailLayoutComponent", "CardItemComponent", "AsyncPipe", "DecimalPipe", "TranslocoDirective", "CollectionOwnerComponent", "BulkOperationsComponent", "changeDetection", "_AllCollectionsComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "performAction", "\u0275\u0275template", "CollectionDetailComponent_ng_container_0_app_side_nav_companion_bar_3_h2_2_span_3_Template", "\u0275\u0275advance", "\u0275\u0275property", "actionInProgress", "collectionTagActions", "collectionTag", "title", "\u0275\u0275textInterpolate1", "promoted", "_r1", "filterOpen", "emit", "\u0275\u0275elementContainerStart", "CollectionDetailComponent_ng_container_0_app_side_nav_companion_bar_3_h2_2_Template", "filterActive", "undefined", "\u0275\u0275pipeBind1", "source", "\u0275\u0275pureFunction0", "_c4", "\u0275\u0275textInterpolate", "t_r4", "\u0275\u0275pureFunction1", "_c5", "series", "length", "totalSourceCount", "_c6", "\u0275\u0275pipeBind2", "lastSyncUtc", "summary", "utilityService", "getActiveBreakpoint", "Breakpoint", "Tablet", "CollectionDetailComponent_ng_container_0_div_4_Conditional_2_Conditional_3_Template", "CollectionDetailComponent_ng_container_0_div_4_Conditional_2_Conditional_5_Template", "_c3", "imageService", "getCollectionCoverImage", "id", "\u0275\u0275conditional", "ScrobbleProvider", "Kavita", "missingSeriesFromSource", "_r6", "loadPage", "position_r7", "idx", "bulkSelectionService", "handleCardSelection", "item_r8", "libraryId", "isCardSelected", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_div_3_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_div_4_ng_template_1_Template", "_r5", "updateFilter", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_ng_template_1_Template", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_div_3_Template", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_div_4_Template", "isLoading", "pagination", "filterSettings", "scrollingBlock_r9", "trackByIdentity", "jumpbarKeys", "CollectionDetailComponent_ng_container_0_div_4_Conditional_2_Template", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_Template", "_c2", "ScrollingBlockHeight", "bulkActionCallback", "filter", "CollectionDetailComponent_ng_container_0_app_side_nav_companion_bar_3_Template", "CollectionDetailComponent_ng_container_0_div_4_Template", "CollectionDetailComponent", "scrollingBlock", "navbar", "document", "querySelector", "companionHeight", "companionBar", "nativeElement", "offsetHeight", "navbarHeight", "constructor", "inject", "ImageService", "BulkSelectionService", "destroyRef", "DestroyRef", "translocoService", "TranslocoService", "collectionService", "CollectionTagService", "router", "Router", "route", "ActivatedRoute", "seriesService", "SeriesService", "toastr", "ToastrService", "actionFactoryService", "ActionFactoryService", "accountService", "AccountService", "modalService", "NgbModal", "titleService", "Title", "jumpbarService", "JumpbarService", "actionService", "ActionService", "messageHub", "MessageHubService", "filterUtilityService", "FilterUtilitiesService", "UtilityService", "cdRef", "ChangeDetectorRef", "scrollService", "ScrollService", "Pagination", "FilterSettings", "EventEmitter", "index", "item", "name", "localizedName", "pagesRead", "action", "data", "selectedSeriesIndices", "getSelectedCardsForSource", "selectedSeries", "includes", "Action", "AddToReadingList", "addMultipleSeriesToReadingList", "success", "deselectAll", "markForCheck", "AddToWantToReadList", "addMultipleSeriesToWantToReadList", "map", "s", "RemoveFromWantToReadList", "removeMultipleSeriesFromWantToReadList", "AddToCollection", "addMultipleSeriesToCollectionTag", "MarkAsRead", "markMultipleSeriesAsRead", "MarkAsUnread", "markMultipleSeriesAsUnread", "Delete", "deleteMultipleSeries", "successful", "routeReuseStrategy", "shouldReuseRoute", "routeId", "snapshot", "paramMap", "get", "navigate", "tagId", "parseInt", "filterPresetsFromUrl", "subscribe", "statements", "stmt", "field", "FilterField", "CollectionTags", "push", "value", "comparison", "FilterComparison", "Equal", "filterActiveCheck", "createSeriesV2Filter", "presetsV2", "updateTag", "ngOnInit", "currentUser$", "pipe", "takeUntilDestroyed", "user", "getCollectionTagActions", "handleCollectionActionCallback", "bind", "actionListFilter", "messages$", "debounceTime", "event", "EVENTS", "CollectionUpdated", "payload", "SeriesRemoved", "ngAfterContentChecked", "setScrollContainer", "handleKeypress", "key", "KEY_CODES", "SHIFT", "isShiftDown", "handleKeyUp", "allCollections", "tags", "matchingTags", "t", "error", "translate", "navigateByUrl", "replace", "setTitle", "collectionName", "deepEqual", "getAllSeriesV2", "take", "result", "getJumpKeys", "filterV2", "isFirst", "updateUrlFromFilter", "encodedFilter", "owner", "username", "Promote", "promoteMultipleCollections", "UnPromote", "Edit", "openEditCollectionTagModal", "deleteTag", "callback", "modalRef", "open", "EditCollectionTagsComponent", "size", "scrollable", "componentInstance", "tag", "closed", "results", "\u0275\u0275directiveInject", "DOCUMENT", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275resolveDocument", "CollectionDetailComponent_ng_container_0_Template", "NgIf", "SideNavCompanionBarComponent", "CardActionablesComponent", "NgStyle", "ImageComponent", "ReadMoreComponent", "BulkOperationsComponent", "CardDetailLayoutComponent", "SeriesCardComponent", "TranslocoDirective", "NgbTooltip", "DatePipe", "DefaultDatePipe", "ProviderImagePipe", "ProviderNamePipe", "styles", "changeDetection", "_CollectionDetailComponent", "routes", "path", "component", "AllCollectionsComponent", "pathMatch", "CollectionDetailComponent"] }