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

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

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

{{t('title')}}

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

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

\n
\n
\n
\n\n
\n
0\">\n
\n \n
\n
\n \n
\n
\n
\n \n\n \n \n \n \n\n
\n \n {{t('no-data')}}\n \n
\n\n
\n \n {{t('no-data-filtered')}}\n \n
\n
\n
\n
\n", "import { Routes } from '@angular/router';\nimport { AllCollectionsComponent } from '../collections/_components/all-collections/all-collections.component';\nimport { CollectionDetailComponent } from '../collections/_components/collection-detail/collection-detail.component';\n\nexport const routes: Routes = [\n {path: '', component: AllCollectionsComponent, pathMatch: 'full'},\n {path: ':id', component: CollectionDetailComponent},\n];\n\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_ng_template_15_Conditional_0_For_14_Template", "_forTrack0", "EditCollectionTagsComponent_ng_container_0_ng_template_15_Conditional_0_Conditional_16_Template", "formGroup", "selectAll", "hasSomeSelected", "\u0275\u0275repeater", "\u0275\u0275pipeBind2", "series", "filterList", "length", "totalPages", "EditCollectionTagsComponent_ng_container_0_ng_template_15_Conditional_0_Template", "isLoading", "_r10", "imageUrls", "updateSelectedIndex", "updateSelectedImage", "handleReset", "coverImageLocked", "\u0275\u0275elementContainerStart", "_r1", "close", "active", "EditCollectionTagsComponent_ng_container_0_ng_template_11_Template", "EditCollectionTagsComponent_ng_container_0_ng_template_15_Template", "EditCollectionTagsComponent_ng_container_0_ng_template_19_Template", "save", "\u0275\u0275pureFunction1", "_c0", "title", "\u0275\u0275classMapInterpolate1", "utilityService", "getActiveBreakpoint", "Breakpoint", "Mobile", "\u0275\u0275propertyInterpolate", "TabID", "General", "Series", "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", "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", "imageService", "getCollectionCoverImage", "id", "summary", "_r5", "loadPage", "position_r6", "idx", "bulkSelectionService", "handleCardSelection", "series", "length", "item_r7", "libraryId", "isCardSelected", "t_r8", "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", "_r4", "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_div_2_Template", "CollectionDetailComponent_ng_container_0_div_4_app_card_detail_layout_4_Template", "\u0275\u0275pureFunction1", "_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", "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", "SeriesAddedToCollection", "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", "styles", "changeDetection", "_CollectionDetailComponent", "routes", "path", "component", "AllCollectionsComponent", "pathMatch", "CollectionDetailComponent"] }