{ "version": 3, "sources": ["src/app/_services/upload.service.ts", "src/app/cards/cover-image-chooser/cover-image-chooser.component.ts", "src/app/cards/cover-image-chooser/cover-image-chooser.component.html", "src/app/_models/library/file-type-group.enum.ts", "src/app/_pipes/file-type-group.pipe.ts", "src/app/shared/edit-list/edit-list.component.ts", "src/app/shared/edit-list/edit-list.component.html", "src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.ts", "src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.html", "src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.ts", "src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.html", "src/app/reading-list/_modals/edit-reading-list-modal/edit-reading-list-modal.component.ts", "src/app/reading-list/_modals/edit-reading-list-modal/edit-reading-list-modal.component.html", "src/app/_services/chapter.service.ts", "src/app/_services/volume.service.ts", "src/app/_models/series-detail/external-series-detail.ts", "src/app/_pipes/plus-media-format.pipe.ts", "src/app/_single-module/match-series-result-item/match-series-result-item.component.ts", "src/app/_single-module/match-series-result-item/match-series-result-item.component.html", "src/app/_single-module/match-series-modal/match-series-modal.component.ts", "src/app/_single-module/match-series-modal/match-series-modal.component.html", "src/app/_services/action.service.ts", "src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts", "src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html"], "sourcesContent": ["import { HttpClient } from '@angular/common/http';\nimport {inject, Injectable} from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { TextResonse } from '../_types/text-response';\nimport {translate} from \"@jsverse/transloco\";\nimport {ToastrService} from \"ngx-toastr\";\nimport {tap} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n private baseUrl = environment.apiUrl;\n private readonly toastr = inject(ToastrService);\n\n constructor(private httpClient: HttpClient) { }\n\n\n uploadByUrl(url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/upload-by-url', {url}, TextResonse);\n }\n\n /**\n *\n * @param seriesId Series to overwrite cover image for\n * @param url A base64 encoded url\n * @param lockCover Should the cover be locked or not\n * @returns\n */\n updateSeriesCoverImage(seriesId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/series', {id: seriesId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n updateCollectionCoverImage(tagId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/collection', {id: tagId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n updateReadingListCoverImage(readingListId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/reading-list', {id: readingListId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n updateChapterCoverImage(chapterId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/chapter', {id: chapterId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n updateVolumeCoverImage(volumeId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/volume', {id: volumeId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n updateLibraryCoverImage(libraryId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/library', {id: libraryId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n updatePersonCoverImage(personId: number, url: string, lockCover: boolean = true) {\n return this.httpClient.post(this.baseUrl + 'upload/person', {id: personId, url: this._cleanBase64Url(url), lockCover}).pipe(tap(_ => {\n this.toastr.info(translate('series-detail.cover-change'));\n }));\n }\n\n resetChapterCoverLock(chapterId: number, ) {\n return this.httpClient.post(this.baseUrl + 'upload/reset-chapter-lock', {id: chapterId, url: ''});\n }\n\n _cleanBase64Url(url: string) {\n if (url.startsWith('data')) {\n url = url.split(',')[1];\n }\n return url;\n }\n}\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {NgxFileDropEntry, FileSystemFileEntry, NgxFileDropModule} from 'ngx-file-drop';\nimport { fromEvent } from 'rxjs';\nimport { takeWhile } from 'rxjs/operators';\nimport { ToastrService } from 'ngx-toastr';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { KEY_CODES } from 'src/app/shared/_services/utility.service';\nimport { UploadService } from 'src/app/_services/upload.service';\nimport {DOCUMENT, NgClass} from '@angular/common';\nimport {ImageComponent} from \"../../shared/image/image.component\";\nimport {translate, TranslocoModule} from \"@jsverse/transloco\";\n\n@Component({\n selector: 'app-cover-image-chooser',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n NgxFileDropModule,\n ImageComponent,\n TranslocoModule,\n NgClass\n ],\n templateUrl: './cover-image-chooser.component.html',\n styleUrls: ['./cover-image-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CoverImageChooserComponent implements OnInit {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n public readonly imageService = inject(ImageService);\n public readonly fb = inject(FormBuilder);\n public readonly toastr = inject(ToastrService);\n public readonly uploadService = inject(UploadService);\n\n /**\n * If buttons show under images to allow immediate selection of cover images.\n */\n @Input() showApplyButton: boolean = false;\n /**\n * When a cover image is selected, this will be called with a base url representation of the file.\n */\n @Output() applyCover: EventEmitter = new EventEmitter();\n /**\n * When a cover image is reset, this will be called.\n */\n @Output() resetCover: EventEmitter = new EventEmitter();\n\n @Input() imageUrls: Array = [];\n @Output() imageUrlsChange: EventEmitter> = new EventEmitter>();\n\n /**\n * Should the control give the ability to select an image that emits the reset status for cover image\n */\n @Input() showReset: boolean = false;\n @Output() resetClicked: EventEmitter = new EventEmitter();\n\n /**\n * Emits the selected index. Used usually to check if something other than the default image was selected.\n */\n @Output() imageSelected: EventEmitter = new EventEmitter();\n /**\n * Emits a base64 encoded image\n */\n @Output() selectedBase64Url: EventEmitter = new EventEmitter();\n\n\n\n selectedIndex: number = 0;\n /**\n * Only applies for showApplyButton. Used to track which image is applied.\n */\n appliedIndex: number = 0;\n form!: FormGroup;\n files: NgxFileDropEntry[] = [];\n acceptableExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.avif'].join(',');\n mode: 'file' | 'url' | 'all' = 'all';\n\n constructor(@Inject(DOCUMENT) private document: Document) { }\n\n ngOnInit(): void {\n this.form = this.fb.group({\n coverImageUrl: new FormControl('', [])\n });\n\n this.cdRef.markForCheck();\n }\n\n\n /**\n * Generates a base64 encoding for an Image. Used in manual file upload flow.\n * @param img\n * @returns\n */\n getBase64Image(img: HTMLImageElement) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\", {alpha: false});\n if (!ctx) {\n return '';\n }\n\n ctx.drawImage(img, 0, 0);\n return canvas.toDataURL(\"image/png\");\n }\n\n selectImage(index: number, callback?: Function) {\n if (this.selectedIndex === index) { return; }\n\n // If we load custom images of series/chapters/covers, then those urls are not properly encoded, so on select we have to clean them up\n if (!this.imageUrls[index].startsWith('data:image/')) {\n const imgUrl = this.imageUrls[index];\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = imgUrl;\n img.onload = (e) => {\n this.handleUrlImageAdd(img, index);\n this.selectedBase64Url.emit(this.imageUrls[this.selectedIndex]);\n if (callback) callback(index);\n };\n img.onerror = (e) => {\n this.toastr.error(translate('errors.rejected-cover-upload'));\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n };\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n return;\n }\n\n this.selectedIndex = index;\n this.cdRef.markForCheck();\n this.imageSelected.emit(this.selectedIndex);\n this.selectedBase64Url.emit(this.imageUrls[this.selectedIndex]);\n }\n\n applyImage(index: number) {\n if (!this.showApplyButton) return;\n\n this.selectImage(index, () => {\n this.applyCover.emit(this.imageUrls[index]);\n this.appliedIndex = index;\n this.cdRef.markForCheck();\n });\n }\n\n resetImage() {\n if (this.showApplyButton) {\n this.resetCover.emit();\n }\n }\n\n loadImage(url?: string) {\n url = url || this.form.get('coverImageUrl')?.value.trim();\n if (!url || url === '') return;\n\n this.uploadService.uploadByUrl(url).subscribe(filename => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = this.imageService.getCoverUploadImage(filename);\n img.onload = (e) => this.handleUrlImageAdd(img);\n img.onerror = (e) => {\n this.toastr.error(translate('errors.rejected-cover-upload'));\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n };\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n });\n }\n\n loadImageFromUrl(url?: string) {\n url = url || this.form.get('coverImageUrl')?.value.trim();\n if (!url || url === '') return;\n\n this.uploadService.uploadByUrl(url).subscribe(filename => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = this.imageService.getCoverUploadImage(filename);\n img.onload = (e) => this.handleUrlImageAdd(img);\n img.onerror = (e) => {\n this.toastr.error(translate('errors.rejected-cover-upload'));\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n };\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n });\n }\n\n\n\n changeMode(mode: 'url') {\n this.mode = mode;\n this.setupEnterHandler();\n this.cdRef.markForCheck();\n\n setTimeout(() => (this.document.querySelector('#load-image') as HTMLInputElement)?.focus(), 10);\n }\n\n public dropped(files: NgxFileDropEntry[]) {\n this.files = files;\n for (const droppedFile of files) {\n\n // Is it a file?\n if (droppedFile.fileEntry.isFile) {\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\n fileEntry.file((file: File) => {\n const reader = new FileReader();\n reader.onload = (e) => this.handleFileImageAdd(e);\n reader.readAsDataURL(file);\n });\n }\n }\n }\n\n handleFileImageAdd(e: any) {\n if (e.target == null) return;\n\n this.imageUrls.push(e.target.result); // This is base64 already\n this.imageUrlsChange.emit(this.imageUrls);\n this.selectedIndex = this.imageUrls.length - 1;\n this.imageSelected.emit(this.selectedIndex); // Auto select newly uploaded image\n this.selectedBase64Url.emit(e.target.result);\n setTimeout(() => {\n (this.document.querySelector('div.image-card[aria-label=\"Image ' + this.selectedIndex + '\"]') as HTMLElement).focus();\n })\n this.cdRef.markForCheck();\n }\n\n handleUrlImageAdd(img: HTMLImageElement, index: number = -1) {\n const url = this.getBase64Image(img);\n if (index >= 0) {\n this.imageUrls[index] = url;\n } else {\n this.imageUrls.push(url);\n }\n\n this.imageUrlsChange.emit(this.imageUrls);\n this.cdRef.markForCheck();\n\n setTimeout(() => {\n // Auto select newly uploaded image and tell parent of new base64 url\n this.selectImage(index >= 0 ? index : this.imageUrls.length - 1);\n });\n }\n\n reset() {\n this.resetClicked.emit();\n this.selectedIndex = -1;\n }\n\n setupEnterHandler() {\n setTimeout(() => {\n const elem = document.querySelector('input[id=\"load-image\"]');\n if (elem == null) return;\n fromEvent(elem, 'keydown')\n .pipe(takeWhile(() => this.mode === 'url')).subscribe((event) => {\n const evt = event;\n switch(evt.key) {\n case KEY_CODES.ENTER:\n {\n this.loadImage();\n break;\n }\n\n case KEY_CODES.ESC_KEY:\n this.mode = 'all';\n event.stopPropagation();\n break;\n default:\n break;\n }\n });\n });\n }\n\n protected fileOver(event: any){}\n protected fileLeave(event: any){}\n}\n", "\n
\n
\n \n \n @if (mode === 'all') {\n
\n \n
\n } @else if (mode === 'url') {\n
\n
\n \n \n \n
\n \n
\n }\n
\n
\n\n \n\n \n
\n\n
\n @if (showReset) {\n
\n \n @if (showApplyButton) {\n
\n \n }\n
\n }\n\n @for (url of imageUrls; track url; let idx = $index) {\n
\n 0\">\n @if (showApplyButton) {\n
\n \n }\n
\n }\n\n\n
\n\n
\n\n\n
\n", "export enum FileTypeGroup {\n Archive = 1,\n Epub = 2,\n Pdf = 3,\n Images = 4\n}\n\nexport const allFileTypeGroup = Object.keys(FileTypeGroup)\n.filter(key => !isNaN(Number(key)) && parseInt(key, 10) >= 0)\n.map(key => parseInt(key, 10)) as FileTypeGroup[];\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport {FileTypeGroup} from \"../_models/library/file-type-group.enum\";\nimport {translate} from \"@jsverse/transloco\";\n\n@Pipe({\n name: 'fileTypeGroup',\n standalone: true\n})\nexport class FileTypeGroupPipe implements PipeTransform {\n\n transform(value: FileTypeGroup): string {\n switch (value) {\n case FileTypeGroup.Archive:\n return translate('file-type-group-pipe.archive');\n case FileTypeGroup.Epub:\n return translate('file-type-group-pipe.epub');\n case FileTypeGroup.Pdf:\n return translate('file-type-group-pipe.pdf');\n case FileTypeGroup.Images:\n return translate('file-type-group-pipe.image');\n\n }\n }\n\n}\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormControl, FormGroup, ReactiveFormsModule} from \"@angular/forms\";\nimport {Select2Module} from \"ng-select2-component\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {debounceTime, distinctUntilChanged, tap} from \"rxjs/operators\";\n\n@Component({\n selector: 'app-edit-list',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, Select2Module, TranslocoDirective],\n templateUrl: './edit-list.component.html',\n styleUrl: './edit-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditListComponent implements OnInit {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @Input({required: true}) items: Array = [];\n @Input({required: true}) label = '';\n @Output() updateItems = new EventEmitter>();\n\n form: FormGroup = new FormGroup({});\n private combinedItems: string = '';\n\n get Items() {\n return this.combinedItems.split(',') || [''];\n }\n\n\n ngOnInit() {\n this.items.forEach((link, index) => {\n this.form.addControl('link' + index, new FormControl(link, []));\n });\n\n this.combinedItems = this.items.join(',');\n\n this.form.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n tap(data => this.emit()),\n takeUntilDestroyed(this.destroyRef))\n .subscribe();\n this.cdRef.markForCheck();\n }\n\n add() {\n this.combinedItems += ',';\n this.form.addControl('link' + (this.Items.length - 1), new FormControl('', []));\n this.emit();\n this.cdRef.markForCheck();\n }\n\n remove(index: number) {\n\n const initialControls = Object.keys(this.form.controls)\n .filter(key => key.startsWith('link'));\n\n if (index == 0 && initialControls.length === 1) {\n this.form.get(initialControls[0])?.setValue('', {emitEvent: true});\n this.emit();\n this.cdRef.markForCheck();\n return;\n }\n\n // Remove the form control explicitly then rebuild the combinedItems\n this.form.removeControl('link' + index, {emitEvent: true});\n\n this.combinedItems = Object.keys(this.form.controls)\n .filter(key => key.startsWith('link'))\n .map(key => this.form.get(key)?.value)\n .join(',');\n\n // Recreate form to ensure index's match\n this.form = new FormGroup({});\n this.Items.forEach((item, index) => {\n this.form.addControl('link' + index, new FormControl(item, []));\n })\n\n this.emit();\n this.cdRef.markForCheck();\n }\n\n emit() {\n this.updateItems.emit(Object.keys(this.form.controls)\n .filter(key => key.startsWith('link'))\n .map(key => this.form.get(key)?.value)\n .filter(v => v !== null && v !== ''));\n }\n}\n", "
\n\n @for(item of Items; let i = $index; track item; let isFirst = $first) {\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n }\n\n
\n", "import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {NgbActiveModal, NgbModalModule} from '@ng-bootstrap/ng-bootstrap';\nimport {ToastrService} from 'ngx-toastr';\nimport {UserCollection} from 'src/app/_models/collection-tag';\nimport {ReadingList} from 'src/app/_models/reading-list';\nimport {CollectionTagService} from 'src/app/_services/collection-tag.service';\nimport {CommonModule} from \"@angular/common\";\nimport {FilterPipe} from \"../../../_pipes/filter.pipe\";\nimport {translate, TranslocoDirective} from \"@jsverse/transloco\";\nimport {ScrobbleProvider} from \"../../../_services/scrobbling.service\";\n\n@Component({\n selector: 'app-bulk-add-to-collection',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FilterPipe, NgbModalModule, TranslocoDirective],\n templateUrl: './bulk-add-to-collection.component.html',\n styleUrls: ['./bulk-add-to-collection.component.scss'],\n encapsulation: ViewEncapsulation.None, // This is needed as per the bootstrap modal documentation to get styles to work.\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BulkAddToCollectionComponent implements OnInit, AfterViewInit {\n\n private readonly modal = inject(NgbActiveModal);\n private readonly collectionService = inject(CollectionTagService);\n private readonly toastr = inject(ToastrService);\n private readonly cdRef = inject(ChangeDetectorRef);\n protected readonly MaxItems = 8;\n\n @Input({required: true}) title!: string;\n /**\n * Series Ids to add to Collection Tag\n */\n @Input() seriesIds: Array = [];\n @ViewChild('title') inputElem!: ElementRef;\n\n /**\n * All existing collections sorted by recent use date\n */\n lists: Array = [];\n loading: boolean = false;\n isCreating: boolean = false;\n listForm: FormGroup = new FormGroup({});\n\n ngOnInit(): void {\n\n this.listForm.addControl('title', new FormControl(this.title, []));\n this.listForm.addControl('filterQuery', new FormControl('', []));\n\n this.loading = true;\n this.cdRef.markForCheck();\n this.collectionService.allCollections(true).subscribe(tags => {\n // Don't allow Smart Collections in\n this.lists = tags.filter(t => t.source === ScrobbleProvider.Kavita);\n this.loading = false;\n this.cdRef.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n // Shift focus to input\n if (this.inputElem) {\n this.inputElem.nativeElement.select();\n this.cdRef.markForCheck();\n }\n }\n\n close() {\n this.modal.close();\n }\n\n create() {\n if (this.isCreating) return;\n const tagName = this.listForm.value.title;\n this.isCreating = true;\n this.cdRef.markForCheck();\n this.collectionService.addByMultiple(0, this.seriesIds, tagName).subscribe(() => {\n this.toastr.success(translate('toasts.series-added-to-collection', {collectionName: tagName}));\n this.isCreating = false;\n this.modal.close();\n });\n }\n\n addToCollection(tag: UserCollection) {\n if (this.seriesIds.length === 0) return;\n\n this.collectionService.addByMultiple(tag.id, this.seriesIds, '').subscribe(() => {\n this.toastr.success(translate('toasts.series-added-to-collection', {collectionName: tag.title}));\n this.modal.close();\n });\n\n }\n\n filterList = (listItem: ReadingList) => {\n return listItem.title.toLowerCase().indexOf((this.listForm.value.filterQuery || '').toLowerCase()) >= 0;\n }\n\n}\n", "\n\n
\n

{{t('title')}}

\n \n
\n
\n
\n @if (lists.length >= MaxItems) {\n
\n \n
\n \n \n
\n
\n }\n\n
    \n @for(collectionTag of lists | filter: filterList; let i = $index; track collectionTag.title + collectionTag.promoted) {\n
  • \n {{collectionTag.title}}\n @if (collectionTag.promoted) {\n \n }\n
  • \n }\n\n @if (lists.length === 0 && !loading) {\n
  • {{t('no-data')}}
  • \n }\n\n @if (loading) {\n
  • \n
    \n {{t('loading')}}\n
    \n
  • \n }\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n\n
\n", "import {AfterViewInit, Component, ElementRef, inject, Input, OnInit, ViewChild} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { ReadingList } from 'src/app/_models/reading-list';\nimport { ReadingListService } from 'src/app/_services/reading-list.service';\nimport { FilterPipe } from '../../../_pipes/filter.pipe';\nimport { NgIf, NgFor } from '@angular/common';\nimport {TranslocoDirective, TranslocoService} from \"@jsverse/transloco\";\n\nexport enum ADD_FLOW {\n Series = 0,\n Volume = 1,\n Chapter = 2,\n Multiple = 3,\n Multiple_Series\n}\n\n@Component({\n selector: 'app-add-to-list-modal',\n templateUrl: './add-to-list-modal.component.html',\n styleUrls: ['./add-to-list-modal.component.scss'],\n standalone: true,\n imports: [ReactiveFormsModule, NgIf, NgFor, FilterPipe, TranslocoDirective]\n})\nexport class AddToListModalComponent implements OnInit, AfterViewInit {\n\n @Input({required: true}) title!: string;\n /**\n * Only used in Series flow\n */\n @Input() seriesId?: number;\n /**\n * Only used in Volume flow\n */\n @Input() volumeId?: number;\n /**\n * Only used in Chapter flow\n */\n @Input() chapterId?: number;\n /**\n * Only used in Multiple flow\n */\n @Input() volumeIds?: Array;\n /**\n * Only used in Multiple flow\n */\n @Input() chapterIds?: Array;\n /**\n * Only used in Multiple_Series flow\n */\n @Input() seriesIds?: Array;\n\n /**\n * Determines which Input is required and which API is used to associate to the Reading List\n */\n @Input({required: true}) type!: ADD_FLOW;\n\n /**\n * All existing reading lists sorted by recent use date\n */\n lists: Array = [];\n loading: boolean = false;\n listForm: FormGroup = new FormGroup({});\n\n @ViewChild('title') inputElem!: ElementRef;\n\n filterList = (listItem: ReadingList) => {\n return listItem.title.toLowerCase().indexOf((this.listForm.value.filterQuery || '').toLowerCase()) >= 0;\n }\n\n translocoService = inject(TranslocoService);\n\n\n constructor(private modal: NgbActiveModal, private readingListService: ReadingListService, private toastr: ToastrService) { }\n\n ngOnInit(): void {\n\n this.listForm.addControl('title', new FormControl(this.title, []));\n this.listForm.addControl('filterQuery', new FormControl('', []));\n\n this.loading = true;\n this.readingListService.getReadingLists(false, true).subscribe(lists => {\n this.lists = lists.result;\n this.loading = false;\n });\n\n\n }\n\n ngAfterViewInit() {\n // Shift focus to input\n if (this.inputElem) {\n this.inputElem.nativeElement.select();\n }\n }\n\n close() {\n this.modal.close();\n }\n\n create() {\n this.readingListService.createList(this.listForm.value.title).subscribe(list => {\n this.addToList(list);\n });\n }\n\n addToList(readingList: ReadingList) {\n\n if (this.type === ADD_FLOW.Multiple_Series && this.seriesIds !== undefined) {\n this.readingListService.updateByMultipleSeries(readingList.id, this.seriesIds).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.series-added-to-reading-list'));\n this.modal.close();\n });\n }\n\n if (this.seriesId === undefined) return;\n\n if (this.type === ADD_FLOW.Series && this.seriesId !== undefined) {\n this.readingListService.updateBySeries(readingList.id, this.seriesId).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.series-added-to-reading-list'));\n this.modal.close();\n });\n } else if (this.type === ADD_FLOW.Volume && this.volumeId !== undefined) {\n this.readingListService.updateByVolume(readingList.id, this.seriesId, this.volumeId).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.volumes-added-to-reading-list'));\n this.modal.close();\n });\n } else if (this.type === ADD_FLOW.Chapter && this.chapterId !== undefined) {\n this.readingListService.updateByChapter(readingList.id, this.seriesId, this.chapterId).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.chapter-added-to-reading-list'));\n this.modal.close();\n });\n } else if (this.type === ADD_FLOW.Multiple && this.volumeIds !== undefined && this.chapterIds !== undefined) {\n this.readingListService.updateByMultiple(readingList.id, this.seriesId, this.volumeIds, this.chapterIds).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.multiple-added-to-reading-list'));\n this.modal.close();\n });\n }\n\n }\n}\n", "\n\n
\n

{{t('title')}}

\n \n
\n
\n
\n
= 5\">\n \n
\n \n \n
\n
\n
    \n
  • \n {{readingList.title}} \n
  • \n
  • {{t('no-data')}}
  • \n
  • \n
    \n {{t('loading')}}\n
    \n
  • \n
\n
\n
\n
\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 inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';\nimport { NgbActiveModal, NgbNav, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavContent, NgbTooltip, NgbNavOutlet } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { debounceTime, distinctUntilChanged, forkJoin, switchMap, tap } from 'rxjs';\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\nimport { ReadingList } from 'src/app/_models/reading-list';\nimport { AccountService } from 'src/app/_services/account.service';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { ReadingListService } from 'src/app/_services/reading-list.service';\nimport { UploadService } from 'src/app/_services/upload.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { CoverImageChooserComponent } from '../../../cards/cover-image-chooser/cover-image-chooser.component';\nimport { NgIf, NgTemplateOutlet, AsyncPipe } from '@angular/common';\nimport {translate, TranslocoDirective} from \"@jsverse/transloco\";\n\nenum TabID {\n General = 'general-tab',\n CoverImage = 'cover-image-tab'\n}\n\n@Component({\n selector: 'app-edit-reading-list-modal',\n templateUrl: './edit-reading-list-modal.component.html',\n styleUrls: ['./edit-reading-list-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgbNav, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavContent, ReactiveFormsModule, NgIf, NgbTooltip, NgTemplateOutlet, CoverImageChooserComponent, NgbNavOutlet, AsyncPipe, TranslocoDirective]\n})\nexport class EditReadingListModalComponent implements OnInit {\n\n @Input({required: true}) readingList!: ReadingList;\n private readonly destroyRef = inject(DestroyRef);\n reviewGroup!: FormGroup;\n\n coverImageIndex: number = 0;\n /**\n * Url of the selected cover\n */\n selectedCover: string = '';\n coverImageLocked: boolean = false;\n imageUrls: Array = [];\n active = TabID.General;\n\n get Breakpoint() { return Breakpoint; }\n get TabID() { return TabID; }\n\n constructor(private ngModal: NgbActiveModal, private readingListService: ReadingListService,\n public utilityService: UtilityService, private uploadService: UploadService, private toastr: ToastrService,\n private imageService: ImageService, private readonly cdRef: ChangeDetectorRef, public accountService: AccountService) { }\n\n ngOnInit(): void {\n this.reviewGroup = new FormGroup({\n title: new FormControl(this.readingList.title, { nonNullable: true, validators: [Validators.required] }),\n summary: new FormControl(this.readingList.summary, { nonNullable: true, validators: [] }),\n promoted: new FormControl(this.readingList.promoted, { nonNullable: true, validators: [] }),\n startingMonth: new FormControl(this.readingList.startingMonth, { nonNullable: true, validators: [Validators.min(1), Validators.max(12)] }),\n startingYear: new FormControl(this.readingList.startingYear, { nonNullable: true, validators: [Validators.min(1000)] }),\n endingMonth: new FormControl(this.readingList.endingMonth, { nonNullable: true, validators: [Validators.min(1), Validators.max(12)] }),\n endingYear: new FormControl(this.readingList.endingYear, { nonNullable: true, validators: [Validators.min(1000)] }),\n });\n\n this.coverImageLocked = this.readingList.coverImageLocked;\n\n this.reviewGroup.get('title')?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n switchMap(name => this.readingListService.nameExists(name)),\n tap(exists => {\n const isExistingName = this.reviewGroup.get('title')?.value === this.readingList.title;\n if (!exists || isExistingName) {\n this.reviewGroup.get('title')?.setErrors(null);\n } else {\n this.reviewGroup.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.getReadingListCoverImage(this.readingList.id)));\n if (!this.readingList.items || this.readingList.items.length === 0) {\n this.readingListService.getListItems(this.readingList.id).subscribe(items => {\n this.imageUrls.push(...(items).map(rli => this.imageService.getChapterCoverImage(rli.chapterId)));\n });\n } else {\n this.imageUrls.push(...(this.readingList.items).map(rli => this.imageService.getChapterCoverImage(rli.chapterId)));\n }\n }\n\n close() {\n this.ngModal.dismiss(undefined);\n }\n\n save() {\n if (this.reviewGroup.value.title.trim() === '') return;\n\n const model = {...this.reviewGroup.value, readingListId: this.readingList.id, coverImageLocked: this.coverImageLocked};\n model.startingMonth = model.startingMonth || 0;\n model.startingYear = model.startingYear || 0;\n model.endingMonth = model.endingMonth || 0;\n model.endingYear = model.endingYear || 0;\n const apis = [this.readingListService.update(model)];\n\n if (this.selectedCover !== '') {\n apis.push(this.uploadService.updateReadingListCoverImage(this.readingList.id, this.selectedCover))\n }\n\n forkJoin(apis).subscribe(results => {\n this.readingList.title = model.title;\n this.readingList.summary = model.summary;\n this.readingList.coverImageLocked = this.coverImageLocked;\n this.readingList.promoted = model.promoted;\n this.ngModal.close(this.readingList);\n this.toastr.success(translate('toasts.reading-list-updated'));\n });\n }\n\n updateSelectedIndex(index: number) {\n this.coverImageIndex = index;\n this.cdRef.detectChanges();\n }\n\n updateSelectedImage(url: string) {\n this.selectedCover = url;\n }\n\n handleReset() {\n this.coverImageLocked = false;\n }\n\n}\n", "\n\n
\n

{{t('title', {name: readingList.title})}}

\n \n
\n
\n
    \n
  • \n {{t(TabID.General)}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n {{t('required-field')}}\n
    \n
    \n {{t('name-unique-validation')}}\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n {{t('promote-tooltip')}}\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    {{t('starting-title')}}
    \n
    \n \n \n
    \n
    \n {{t('month-validation')}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n {{t('year-validation')}}\n
    \n
    \n
    \n
    \n\n
    \n
    {{t('ending-title')}}
    \n
    \n \n \n
    \n
    \n {{t('month-validation')}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n {{t('year-validation')}}\n
    \n
    \n
    \n
    \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
\n", "import { Injectable } from '@angular/core';\nimport {environment} from \"../../environments/environment\";\nimport { HttpClient } from \"@angular/common/http\";\nimport {Chapter} from \"../_models/chapter\";\nimport {TextResonse} from \"../_types/text-response\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChapterService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient) { }\n\n getChapterMetadata(chapterId: number) {\n return this.httpClient.get(this.baseUrl + 'chapter?chapterId=' + chapterId);\n }\n\n deleteChapter(chapterId: number) {\n return this.httpClient.delete(this.baseUrl + 'chapter?chapterId=' + chapterId);\n }\n\n deleteMultipleChapters(seriesId: number, chapterIds: Array) {\n return this.httpClient.post(this.baseUrl + `chapter/delete-multiple?seriesId=${seriesId}`, {chapterIds});\n }\n\n updateChapter(chapter: Chapter) {\n return this.httpClient.post(this.baseUrl + 'chapter/update', chapter, TextResonse);\n }\n\n}\n", "import { Injectable } from '@angular/core';\nimport {environment} from \"../../environments/environment\";\nimport { HttpClient } from \"@angular/common/http\";\nimport {Volume} from \"../_models/volume\";\nimport {TextResonse} from \"../_types/text-response\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VolumeService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient) { }\n\n getVolumeMetadata(volumeId: number) {\n return this.httpClient.get(this.baseUrl + 'volume?volumeId=' + volumeId);\n }\n\n deleteVolume(volumeId: number) {\n return this.httpClient.delete(this.baseUrl + 'volume?volumeId=' + volumeId);\n }\n\n updateVolume(volume: any) {\n return this.httpClient.post(this.baseUrl + 'volume/update', volume, TextResonse);\n }\n}\n", "import {ScrobbleProvider} from \"../../_services/scrobbling.service\";\n\nexport enum PlusMediaFormat {\n Manga = 1,\n Comic = 2,\n LightNovel = 3,\n Book = 4\n}\n\nexport interface SeriesStaff {\n name: string;\n url: string;\n role: string;\n imageUrl?: string;\n gender?: string;\n description?: string;\n}\n\nexport interface MetadataTagDto {\n name: string;\n description: string;\n rank?: number;\n isGeneralSpoiler: boolean;\n isMediaSpoiler: boolean;\n isAdult: boolean;\n}\n\nexport interface ExternalSeriesDetail {\n name: string;\n aniListId?: number;\n malId?: number;\n synonyms: Array;\n plusMediaFormat: PlusMediaFormat;\n siteUrl?: string;\n coverUrl?: string;\n genres: Array;\n summary?: string;\n volumeCount?: number;\n chapterCount?: number;\n /**\n * These are duplicated with volumeCount based on where it's being invoked.\n */\n volumes?: number;\n chapters?: number;\n staff: Array;\n tags: Array;\n provider: ScrobbleProvider;\n}\n", "import { Pipe, PipeTransform } from '@angular/core';\nimport {PlusMediaFormat} from \"../_models/series-detail/external-series-detail\";\nimport {translate} from \"@jsverse/transloco\";\n\n@Pipe({\n name: 'plusMediaFormat',\n standalone: true\n})\nexport class PlusMediaFormatPipe implements PipeTransform {\n\n transform(value: PlusMediaFormat): string {\n switch (value) {\n case PlusMediaFormat.Manga:\n return translate('library-type-pipe.manga');\n case PlusMediaFormat.Comic:\n return translate('library-type-pipe.comic');\n case PlusMediaFormat.LightNovel:\n return translate('library-type-pipe.lightNovel');\n case PlusMediaFormat.Book:\n return translate('library-type-pipe.book');\n\n }\n }\n\n}\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n Output\n} from '@angular/core';\nimport {ImageComponent} from \"../../shared/image/image.component\";\nimport {SeriesFormatComponent} from \"../../shared/series-format/series-format.component\";\nimport {ExternalSeriesMatch} from \"../../_models/series-detail/external-series-match\";\nimport {PercentPipe} from \"@angular/common\";\nimport {TranslocoPercentPipe} from \"@jsverse/transloco-locale\";\nimport {ReadMoreComponent} from \"../../shared/read-more/read-more.component\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {PlusMediaFormatPipe} from \"../../_pipes/plus-media-format.pipe\";\nimport {LoadingComponent} from \"../../shared/loading/loading.component\";\n\n@Component({\n selector: 'app-match-series-result-item',\n standalone: true,\n imports: [\n ImageComponent,\n TranslocoPercentPipe,\n ReadMoreComponent,\n TranslocoDirective,\n PlusMediaFormatPipe,\n LoadingComponent\n ],\n templateUrl: './match-series-result-item.component.html',\n styleUrl: './match-series-result-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MatchSeriesResultItemComponent {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n\n @Input({required: true}) item!: ExternalSeriesMatch;\n @Input({required: true}) isDarkMode = true;\n @Output() selected: EventEmitter = new EventEmitter();\n\n isSelected = false;\n\n selectItem() {\n if (this.isSelected) return;\n\n this.isSelected = true;\n this.cdRef.markForCheck();\n this.selected.emit(this.item);\n }\n\n}\n", "\n
\n
\n
\n @if (item.series.coverUrl) {\n \n }\n
\n
\n
{{item.series.name}} ({{item.matchRating | translocoPercent}})
\n
\n @for(synm of item.series.synonyms; track synm; let last = $last) {\n {{synm}}\n @if (!last) {\n , \n }\n }\n
\n @if (item.series.summary) {\n \n }\n
\n
\n\n @if (isSelected) {\n
\n \n {{t('updating-metadata-status')}}\n
\n } @else {\n
\n @if ((item.series.volumes || 0) > 0 || (item.series.chapters || 0) > 0) {\n {{t('volume-count', {num: item.series.volumes})}}\n {{t('chapter-count', {num: item.series.chapters})}}\n } @else {\n {{t('releasing')}}\n }\n\n {{item.series.plusMediaFormat | plusMediaFormat}}\n
\n }\n \n
\n
\n", "import {ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input, OnInit} from '@angular/core';\nimport {Series} from \"../../_models/series\";\nimport {SeriesService} from \"../../_services/series.service\";\nimport {FormControl, FormGroup, ReactiveFormsModule} from \"@angular/forms\";\nimport {NgbActiveModal} from \"@ng-bootstrap/ng-bootstrap\";\nimport {translate, TranslocoDirective} from \"@jsverse/transloco\";\nimport {MatchSeriesResultItemComponent} from \"../match-series-result-item/match-series-result-item.component\";\nimport {LoadingComponent} from \"../../shared/loading/loading.component\";\nimport {ExternalSeriesMatch} from \"../../_models/series-detail/external-series-match\";\nimport {ToastrService} from \"ngx-toastr\";\nimport {SettingItemComponent} from \"../../settings/_components/setting-item/setting-item.component\";\nimport {SettingSwitchComponent} from \"../../settings/_components/setting-switch/setting-switch.component\";\nimport { ThemeService } from 'src/app/_services/theme.service';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'app-match-series-modal',\n standalone: true,\n imports: [\n AsyncPipe,\n TranslocoDirective,\n MatchSeriesResultItemComponent,\n LoadingComponent,\n ReactiveFormsModule,\n SettingItemComponent,\n SettingSwitchComponent\n ],\n templateUrl: './match-series-modal.component.html',\n styleUrl: './match-series-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MatchSeriesModalComponent implements OnInit {\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly seriesService = inject(SeriesService);\n private readonly modalService = inject(NgbActiveModal);\n private readonly toastr = inject(ToastrService);\n protected readonly themeService = inject(ThemeService);\n\n @Input({required: true}) series!: Series;\n\n formGroup = new FormGroup({});\n matches: Array = [];\n isLoading = true;\n\n ngOnInit() {\n this.formGroup.addControl('query', new FormControl('', []));\n this.formGroup.addControl('dontMatch', new FormControl(this.series?.dontMatch || false, []));\n\n this.search();\n }\n\n search() {\n this.isLoading = true;\n this.cdRef.markForCheck();\n\n const model: any = this.formGroup.value;\n model.seriesId = this.series.id;\n\n if (model.dontMatch) return;\n\n this.seriesService.matchSeries(model).subscribe(results => {\n this.isLoading = false;\n this.matches = results;\n this.cdRef.markForCheck();\n });\n }\n\n close() {\n this.modalService.close(false);\n }\n\n save() {\n\n const model: any = this.formGroup.value;\n model.seriesId = this.series.id;\n\n const dontMatchChanged = this.series.dontMatch !== model.dontMatch;\n\n // We need to update the dontMatch status\n if (dontMatchChanged) {\n this.seriesService.updateDontMatch(this.series.id, model.dontMatch).subscribe(_ => {\n this.modalService.close(true);\n });\n } else {\n this.toastr.success(translate('toasts.match-success'));\n this.modalService.close(true);\n }\n }\n\n selectMatch(item: ExternalSeriesMatch) {\n const data = item.series;\n data.tags = data.tags || [];\n data.genres = data.genres || [];\n\n this.seriesService.updateMatch(this.series.id, data).subscribe(_ => {\n this.save();\n });\n }\n\n}\n", "\n
\n
\n

\n {{t('title', {seriesName: series.name})}}\n

\n \n
\n
\n\n
\n

{{t('description')}}

\n
\n
\n \n \n
\n @if (formGroup.get('query'); as formControl) {\n \n @if (formControl.errors) {\n @if (formControl.errors.required) {\n
{{t('required-field')}}
\n }\n }\n }\n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n
\n\n @if (!formGroup.get('dontMatch')?.value) {\n \n @for(item of matches; track item.series.name) {\n \n } @empty {\n @if (!isLoading) {\n {{t('no-results')}}\n }\n }\n }\n\n
\n
\n \n \n
\n
\n
\n\n", "import {inject, Injectable} from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { take } from 'rxjs/operators';\nimport { BulkAddToCollectionComponent } from '../cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component';\nimport { AddToListModalComponent, ADD_FLOW } from '../reading-list/_modals/add-to-list-modal/add-to-list-modal.component';\nimport { EditReadingListModalComponent } from '../reading-list/_modals/edit-reading-list-modal/edit-reading-list-modal.component';\nimport { ConfirmService } from '../shared/confirm.service';\nimport { LibrarySettingsModalComponent } from '../sidenav/_modals/library-settings-modal/library-settings-modal.component';\nimport { Chapter } from '../_models/chapter';\nimport { Device } from '../_models/device/device';\nimport { Library } from '../_models/library/library';\nimport { ReadingList } from '../_models/reading-list';\nimport { Series } from '../_models/series';\nimport { Volume } from '../_models/volume';\nimport { DeviceService } from './device.service';\nimport { LibraryService } from './library.service';\nimport { MemberService } from './member.service';\nimport { ReaderService } from './reader.service';\nimport { SeriesService } from './series.service';\nimport {translate} from \"@jsverse/transloco\";\nimport {UserCollection} from \"../_models/collection-tag\";\nimport {CollectionTagService} from \"./collection-tag.service\";\nimport {FilterService} from \"./filter.service\";\nimport {ReadingListService} from \"./reading-list.service\";\nimport {ChapterService} from \"./chapter.service\";\nimport {VolumeService} from \"./volume.service\";\nimport {DefaultModalOptions} from \"../_models/default-modal-options\";\nimport {MatchSeriesModalComponent} from \"../_single-module/match-series-modal/match-series-modal.component\";\n\n\nexport type LibraryActionCallback = (library: Partial) => void;\nexport type SeriesActionCallback = (series: Series) => void;\nexport type VolumeActionCallback = (volume: Volume) => void;\nexport type ChapterActionCallback = (chapter: Chapter) => void;\nexport type ReadingListActionCallback = (readingList: ReadingList) => void;\nexport type VoidActionCallback = () => void;\nexport type BooleanActionCallback = (result: boolean) => void;\n\n/**\n * Responsible for executing actions\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionService {\n\n private readonly chapterService = inject(ChapterService);\n private readonly volumeService = inject(VolumeService);\n private readonly libraryService = inject(LibraryService);\n private readonly seriesService = inject(SeriesService);\n private readonly readerService = inject(ReaderService);\n private readonly toastr = inject(ToastrService);\n private readonly modalService = inject(NgbModal);\n private readonly confirmService = inject(ConfirmService);\n private readonly memberService = inject(MemberService);\n private readonly deviceService = inject(DeviceService);\n private readonly collectionTagService = inject(CollectionTagService);\n private readonly filterService = inject(FilterService);\n private readonly readingListService = inject(ReadingListService);\n\n\n private readingListModalRef: NgbModalRef | null = null;\n private collectionModalRef: NgbModalRef | null = null;\n\n\n /**\n * Request a file scan for a given Library\n * @param library Partial Library, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @returns\n */\n async scanLibrary(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n // Prompt user if we should do a force or not\n const force = false; // await this.promptIfForce();\n\n this.libraryService.scan(library.id, force).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n\n /**\n * Request a refresh of Metadata for a given Library\n * @param library Partial Library, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @param forceUpdate Optional Should we force\n * @param forceColorscape Optional Should we force colorscape gen\n * @returns\n */\n async refreshLibraryMetadata(library: Partial, callback?: LibraryActionCallback, forceUpdate: boolean = true, forceColorscape: boolean = false) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n // Prompt the user if we are doing a forced call\n if (forceUpdate) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-regen-covers'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n }\n\n const message = forceUpdate ? 'toasts.refresh-covers-queued' : 'toasts.generate-colorscape-queued';\n\n this.libraryService.refreshMetadata(library?.id, forceUpdate, forceColorscape).subscribe((res: any) => {\n this.toastr.info(translate(message, {name: library.name}));\n\n if (callback) {\n callback(library);\n }\n });\n }\n\n editLibrary(library: Partial, callback?: LibraryActionCallback) {\n const modalRef = this.modalService.open(LibrarySettingsModalComponent, DefaultModalOptions);\n modalRef.componentInstance.library = library;\n modalRef.closed.subscribe((closeResult: {success: boolean, library: Library, coverImageUpdate: boolean}) => {\n if (callback) callback(library)\n });\n }\n\n /**\n * Request an analysis of files for a given Library (currently just word count)\n * @param library Partial Library, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @returns\n */\n async analyzeFiles(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n if (!await this.confirmService.alert(translate('toasts.alert-long-running'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n\n this.libraryService.analyze(library?.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.library-file-analysis-queued', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n async deleteLibrary(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n if (!await this.confirmService.alert(translate('toasts.confirm-library-delete'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n\n this.libraryService.delete(library?.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.library-deleted', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n /**\n * Mark a series as read; updates the series pagesRead\n * @param series Series, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n markSeriesAsRead(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.markRead(series.id).pipe(take(1)).subscribe(res => {\n series.pagesRead = series.pages;\n this.toastr.success(translate('toasts.entity-read', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Mark a series as unread; updates the series pagesRead\n * @param series Series, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n markSeriesAsUnread(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.markUnread(series.id).pipe(take(1)).subscribe(res => {\n series.pagesRead = 0;\n this.toastr.success(translate('toasts.entity-unread', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Start a file scan for a Series\n * @param series Series, must have libraryId and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n async scanSeries(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.scan(series.libraryId, series.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Start a file scan for analyze files for a Series\n * @param series Series, must have libraryId and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n analyzeFilesForSeries(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.analyzeFiles(series.libraryId, series.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Start a metadata refresh for a Series\n * @param series Series, must have libraryId, id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @param forceUpdate If cache should be checked or not\n * @param forceColorscape If cache should be checked or not\n */\n async refreshSeriesMetadata(series: Series, callback?: SeriesActionCallback, forceUpdate: boolean = true, forceColorscape: boolean = false) {\n\n // Prompt the user if we are doing a forced call\n if (forceUpdate) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-regen-covers'))) {\n if (callback) {\n callback(series);\n }\n return;\n }\n }\n\n const message = forceUpdate ? 'toasts.refresh-covers-queued' : 'toasts.generate-colorscape-queued';\n\n this.seriesService.refreshMetadata(series, forceUpdate, forceColorscape).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate(message, {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Mark all chapters and the volume as Read\n * @param seriesId Series Id\n * @param volume Volume, should have id, chapters and pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markVolumeAsRead(seriesId: number, volume: Volume, callback?: VolumeActionCallback) {\n this.readerService.markVolumeRead(seriesId, volume.id).pipe(take(1)).subscribe(() => {\n volume.pagesRead = volume.pages;\n volume.chapters?.forEach(c => c.pagesRead = c.pages);\n this.toastr.success(translate('toasts.mark-read'));\n\n if (callback) {\n callback(volume);\n }\n });\n }\n\n /**\n * Mark all chapters and the volume as unread\n * @param seriesId Series Id\n * @param volume Volume, should have id, chapters and pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markVolumeAsUnread(seriesId: number, volume: Volume, callback?: VolumeActionCallback) {\n this.readerService.markVolumeUnread(seriesId, volume.id).subscribe(() => {\n volume.pagesRead = 0;\n volume.chapters?.forEach(c => c.pagesRead = 0);\n this.toastr.success(translate('toasts.mark-unread'));\n if (callback) {\n callback(volume);\n }\n });\n }\n\n /**\n * Mark a chapter as read\n * @param libraryId Library Id\n * @param seriesId Series Id\n * @param chapter Chapter, should have id, pages, volumeId populated\n * @param callback Optional callback to perform actions after API completes\n */\n markChapterAsRead(libraryId: number, seriesId: number, chapter: Chapter, callback?: ChapterActionCallback) {\n this.readerService.saveProgress(libraryId, seriesId, chapter.volumeId, chapter.id, chapter.pages).pipe(take(1)).subscribe(results => {\n chapter.pagesRead = chapter.pages;\n this.toastr.success(translate('toasts.mark-read'));\n if (callback) {\n callback(chapter);\n }\n });\n }\n\n /**\n * Mark a chapter as unread\n * @param libraryId Library Id\n * @param seriesId Series Id\n * @param chapter Chapter, should have id, pages, volumeId populated\n * @param callback Optional callback to perform actions after API completes\n */\n markChapterAsUnread(libraryId: number, seriesId: number, chapter: Chapter, callback?: ChapterActionCallback) {\n this.readerService.saveProgress(libraryId, seriesId, chapter.volumeId, chapter.id, 0).pipe(take(1)).subscribe(results => {\n chapter.pagesRead = 0;\n this.toastr.success(translate('toasts.mark-unread'));\n if (callback) {\n callback(chapter);\n }\n });\n }\n\n /**\n * Mark all chapters and the volumes as Read. All volumes and chapters must belong to a series\n * @param seriesId Series Id\n * @param volumes Volumes, should have id, chapters and pagesRead populated\n * @param chapters Optional Chapters, should have id\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleAsRead(seriesId: number, volumes: Array, chapters?: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleRead(seriesId, volumes.map(v => v.id), chapters?.map(c => c.id)).pipe(take(1)).subscribe(() => {\n volumes.forEach(volume => {\n volume.pagesRead = volume.pages;\n volume.chapters?.forEach(c => c.pagesRead = c.pages);\n });\n chapters?.forEach(c => c.pagesRead = c.pages);\n this.toastr.success(translate('toasts.mark-read'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all chapters and the volumes as Unread. All volumes must belong to a series\n * @param seriesId Series Id\n * @param volumes Volumes, should have id, chapters and pagesRead populated\n * @param chapters Optional Chapters, should have id\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleAsUnread(seriesId: number, volumes: Array, chapters?: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleUnread(seriesId, volumes.map(v => v.id), chapters?.map(c => c.id)).pipe(take(1)).subscribe(() => {\n volumes.forEach(volume => {\n volume.pagesRead = 0;\n volume.chapters?.forEach(c => c.pagesRead = 0);\n });\n chapters?.forEach(c => c.pagesRead = 0);\n this.toastr.success(translate('toasts.mark-unread'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all series as Read.\n * @param series Series, should have id, pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleSeriesAsRead(series: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleSeriesRead(series.map(v => v.id)).pipe(take(1)).subscribe(() => {\n series.forEach(s => {\n s.pagesRead = s.pages;\n });\n this.toastr.success(translate('toasts.mark-read'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all series as Unread.\n * @param series Series, should have id, pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleSeriesAsUnread(series: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleSeriesUnread(series.map(v => v.id)).pipe(take(1)).subscribe(() => {\n series.forEach(s => {\n s.pagesRead = s.pages;\n });\n this.toastr.success(translate('toasts.mark-unread'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all collections as promoted/unpromoted.\n * @param collections UserCollection, should have id, pagesRead populated\n * @param promoted boolean, promoted state\n * @param callback Optional callback to perform actions after API completes\n */\n promoteMultipleCollections(collections: Array, promoted: boolean, callback?: BooleanActionCallback) {\n this.collectionTagService.promoteMultipleCollections(collections.map(v => v.id), promoted).pipe(take(1)).subscribe(() => {\n if (promoted) {\n this.toastr.success(translate('toasts.collections-promoted'));\n } else {\n this.toastr.success(translate('toasts.collections-unpromoted'));\n }\n\n if (callback) {\n callback(true);\n }\n });\n }\n\n /**\n * Deletes multiple collections\n * @param collections UserCollection, should have id, pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n async deleteMultipleCollections(collections: Array, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-collections'))) return;\n\n this.collectionTagService.deleteMultipleCollections(collections.map(v => v.id)).pipe(take(1)).subscribe(() => {\n this.toastr.success(translate('toasts.collections-deleted'));\n\n if (callback) {\n callback(true);\n }\n });\n }\n\n /**\n * Mark all reading lists as promoted/unpromoted.\n * @param readingLists UserCollection, should have id, pagesRead populated\n * @param promoted boolean, promoted state\n * @param callback Optional callback to perform actions after API completes\n */\n promoteMultipleReadingLists(readingLists: Array, promoted: boolean, callback?: BooleanActionCallback) {\n this.readingListService.promoteMultipleReadingLists(readingLists.map(v => v.id), promoted).pipe(take(1)).subscribe(() => {\n if (promoted) {\n this.toastr.success(translate('toasts.reading-list-promoted'));\n } else {\n this.toastr.success(translate('toasts.reading-list-unpromoted'));\n }\n\n if (callback) {\n callback(true);\n }\n });\n }\n\n async deleteMultipleChapters(seriesId: number, chapterIds: Array, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-multiple-chapters'))) return;\n\n this.chapterService.deleteMultipleChapters(seriesId, chapterIds.map(c => c.id)).subscribe(() => {\n if (callback) {\n callback(true);\n }\n });\n }\n\n /**\n * Deletes multiple collections\n * @param readingLists ReadingList, should have id\n * @param callback Optional callback to perform actions after API completes\n */\n async deleteMultipleReadingLists(readingLists: Array, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-reading-list'))) return;\n\n this.readingListService.deleteMultipleReadingLists(readingLists.map(v => v.id)).pipe(take(1)).subscribe(() => {\n this.toastr.success(translate('toasts.reading-lists-deleted'));\n\n if (callback) {\n callback(true);\n }\n });\n }\n\n addMultipleToReadingList(seriesId: number, volumes: Array, chapters?: Array, callback?: BooleanActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = seriesId;\n this.readingListModalRef.componentInstance.volumeIds = volumes.map(v => v.id);\n this.readingListModalRef.componentInstance.chapterIds = chapters?.map(c => c.id);\n this.readingListModalRef.componentInstance.title = translate('actionable.multiple-selections');\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Multiple;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(true);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(false);\n }\n });\n }\n\n addMultipleSeriesToWantToReadList(seriesIds: Array, callback?: VoidActionCallback) {\n this.memberService.addSeriesToWantToRead(seriesIds).subscribe(() => {\n this.toastr.success('Series added to Want to Read list');\n if (callback) {\n callback();\n }\n });\n }\n\n removeMultipleSeriesFromWantToReadList(seriesIds: Array, callback?: VoidActionCallback) {\n this.memberService.removeSeriesToWantToRead(seriesIds).subscribe(() => {\n this.toastr.success(translate('toasts.series-removed-want-to-read'));\n if (callback) {\n callback();\n }\n });\n }\n\n addMultipleSeriesToReadingList(series: Array, callback?: BooleanActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesIds = series.map(v => v.id);\n this.readingListModalRef.componentInstance.title = translate('actionable.multiple-selections');\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Multiple_Series;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(true);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(false);\n }\n });\n }\n\n /**\n * Adds a set of series to a collection tag\n * @param series\n * @param callback\n * @returns\n */\n addMultipleSeriesToCollectionTag(series: Array, callback?: BooleanActionCallback) {\n if (this.collectionModalRef != null) { return; }\n this.collectionModalRef = this.modalService.open(BulkAddToCollectionComponent, { scrollable: true, size: 'md', windowClass: 'collection', fullscreen: 'md' });\n this.collectionModalRef.componentInstance.seriesIds = series.map(v => v.id);\n this.collectionModalRef.componentInstance.title = translate('actionable.new-collection');\n\n this.collectionModalRef.closed.pipe(take(1)).subscribe(() => {\n this.collectionModalRef = null;\n if (callback) {\n callback(true);\n }\n });\n this.collectionModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.collectionModalRef = null;\n if (callback) {\n callback(false);\n }\n });\n }\n\n addSeriesToReadingList(series: Series, callback?: SeriesActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = series.id;\n this.readingListModalRef.componentInstance.title = series.name;\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Series;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(series);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(series);\n }\n });\n }\n\n addVolumeToReadingList(volume: Volume, seriesId: number, callback?: VolumeActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = seriesId;\n this.readingListModalRef.componentInstance.volumeId = volume.id;\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Volume;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(volume);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(volume);\n }\n });\n }\n\n addChapterToReadingList(chapter: Chapter, seriesId: number, callback?: ChapterActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = seriesId;\n this.readingListModalRef.componentInstance.chapterId = chapter.id;\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Chapter;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(chapter);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(chapter);\n }\n });\n }\n\n editReadingList(readingList: ReadingList, callback?: ReadingListActionCallback) {\n const readingListModalRef = this.modalService.open(EditReadingListModalComponent, { scrollable: true, size: 'lg', fullscreen: 'md' });\n readingListModalRef.componentInstance.readingList = readingList;\n readingListModalRef.closed.pipe(take(1)).subscribe((list) => {\n if (callback && list !== undefined) {\n callback(readingList);\n }\n });\n readingListModalRef.dismissed.pipe(take(1)).subscribe((list) => {\n if (callback && list !== undefined) {\n callback(readingList);\n }\n });\n }\n\n /**\n * Deletes all series\n * @param seriesIds - List of series\n * @param callback - Optional callback once complete\n */\n async deleteMultipleSeries(seriesIds: Array, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-multiple-series', {count: seriesIds.length}))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n this.seriesService.deleteMultipleSeries(seriesIds.map(s => s.id)).pipe(take(1)).subscribe(res => {\n if (res) {\n this.toastr.success(translate('toasts.series-deleted'));\n } else {\n this.toastr.error(translate('errors.generic'));\n }\n\n if (callback) {\n callback(res);\n }\n });\n }\n\n async deleteSeries(series: Series, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-series'))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n\n this.seriesService.delete(series.id).subscribe((res: boolean) => {\n if (callback) {\n if (res) {\n this.toastr.success(translate('toasts.series-deleted'));\n } else {\n this.toastr.error(translate('errors.generic'));\n }\n\n callback(res);\n }\n });\n }\n\n async deleteChapter(chapterId: number, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-chapter'))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n\n this.chapterService.deleteChapter(chapterId).subscribe((res: boolean) => {\n if (callback) {\n if (res) {\n this.toastr.success(translate('toasts.chapter-deleted'));\n } else {\n this.toastr.error(translate('errors.generic'));\n }\n\n callback(res);\n }\n });\n }\n\n async deleteVolume(volumeId: number, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-volume'))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n\n this.volumeService.deleteVolume(volumeId).subscribe((res: boolean) => {\n if (callback) {\n if (res) {\n this.toastr.success(translate('toasts.volume-deleted'));\n } else {\n this.toastr.error(translate('errors.generic'));\n }\n\n callback(res);\n }\n });\n }\n\n sendToDevice(chapterIds: Array, device: Device, callback?: VoidActionCallback) {\n this.deviceService.sendTo(chapterIds, device.id).subscribe(() => {\n this.toastr.success(translate('toasts.file-send-to', {name: device.name}));\n if (callback) {\n callback();\n }\n });\n }\n\n sendSeriesToDevice(seriesId: number, device: Device, callback?: VoidActionCallback) {\n this.deviceService.sendSeriesTo(seriesId, device.id).subscribe(() => {\n this.toastr.success(translate('toasts.file-send-to', {name: device.name}));\n if (callback) {\n callback();\n }\n });\n }\n\n matchSeries(series: Series, callback?: BooleanActionCallback) {\n const ref = this.modalService.open(MatchSeriesModalComponent, {size: 'lg'});\n ref.componentInstance.series = series;\n ref.closed.subscribe(saved => {\n if (callback) {\n callback(saved);\n }\n });\n }\n\n async deleteFilter(filterId: number, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-smart-filter'))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n\n this.filterService.deleteFilter(filterId).subscribe(_ => {\n this.toastr.success(translate('toasts.smart-filter-deleted'));\n\n if (callback) {\n callback(true);\n }\n });\n }\n\n}\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport {FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n NgbActiveModal,\n NgbModal,\n NgbModalModule,\n NgbNav,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n NgbNavOutlet,\n NgbTooltip\n} from '@ng-bootstrap/ng-bootstrap';\nimport {ToastrService} from 'ngx-toastr';\nimport {debounceTime, distinctUntilChanged, switchMap, tap} from 'rxjs';\nimport {SettingsService} from 'src/app/admin/settings.service';\nimport {\n DirectoryPickerComponent,\n DirectoryPickerResult\n} from 'src/app/admin/_modals/directory-picker/directory-picker.component';\nimport {ConfirmService} from 'src/app/shared/confirm.service';\nimport {Breakpoint, UtilityService} from 'src/app/shared/_services/utility.service';\nimport {Library, LibraryType} from 'src/app/_models/library/library';\nimport {ImageService} from 'src/app/_services/image.service';\nimport {LibraryService} from 'src/app/_services/library.service';\nimport {UploadService} from 'src/app/_services/upload.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {CommonModule} from \"@angular/common\";\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\nimport {CoverImageChooserComponent} from \"../../../cards/cover-image-chooser/cover-image-chooser.component\";\nimport {translate, TranslocoModule} from \"@jsverse/transloco\";\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\nimport {allFileTypeGroup, FileTypeGroup} from \"../../../_models/library/file-type-group.enum\";\nimport {FileTypeGroupPipe} from \"../../../_pipes/file-type-group.pipe\";\nimport {EditListComponent} from \"../../../shared/edit-list/edit-list.component\";\nimport {WikiLink} from \"../../../_models/wiki\";\nimport {SettingItemComponent} from \"../../../settings/_components/setting-item/setting-item.component\";\nimport {SettingSwitchComponent} from \"../../../settings/_components/setting-switch/setting-switch.component\";\nimport {SettingButtonComponent} from \"../../../settings/_components/setting-button/setting-button.component\";\nimport {Action, ActionFactoryService, ActionItem} from \"../../../_services/action-factory.service\";\nimport {ActionService} from \"../../../_services/action.service\";\n\nenum TabID {\n General = 'general-tab',\n Folder = 'folder-tab',\n Cover = 'cover-tab',\n Advanced = 'advanced-tab',\n Tasks = 'tasks-tab'\n}\n\nenum StepID {\n General = 0,\n Folder = 1,\n Cover = 2,\n Advanced = 3\n}\n\n@Component({\n selector: 'app-library-settings-modal',\n standalone: true,\n imports: [CommonModule, NgbModalModule, NgbNavLink, NgbNavItem, NgbNavContent, ReactiveFormsModule, NgbTooltip,\n SentenceCasePipe, NgbNav, NgbNavOutlet, CoverImageChooserComponent, TranslocoModule, DefaultDatePipe,\n FileTypeGroupPipe, EditListComponent, SettingItemComponent, SettingSwitchComponent, SettingButtonComponent],\n templateUrl: './library-settings-modal.component.html',\n styleUrls: ['./library-settings-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibrarySettingsModalComponent implements OnInit {\n\n protected readonly utilityService = inject(UtilityService);\n protected readonly modal = inject(NgbActiveModal);\n private readonly destroyRef = inject(DestroyRef);\n private readonly uploadService = inject(UploadService);\n private readonly modalService = inject(NgbModal);\n private readonly settingService = inject(SettingsService);\n private readonly confirmService = inject(ConfirmService);\n private readonly libraryService = inject(LibraryService);\n private readonly toastr = inject(ToastrService);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly imageService = inject(ImageService);\n private readonly actionFactoryService = inject(ActionFactoryService);\n private readonly actionService = inject(ActionService);\n\n protected readonly LibraryType = LibraryType;\n protected readonly Breakpoint = Breakpoint;\n protected readonly TabID = TabID;\n protected readonly WikiLink = WikiLink;\n protected readonly Action = Action;\n\n @Input({required: true}) library!: Library | undefined;\n\n active = TabID.General;\n imageUrls: Array = [];\n protected readonly excludePatternTooltip = `` + translate('library-settings-modal.exclude-patterns-tooltip') +\n `${translate('library-settings-modal.help')}` +\n ``;\n\n libraryForm: FormGroup = new FormGroup({\n name: new FormControl('', { nonNullable: true, validators: [Validators.required] }),\n type: new FormControl(LibraryType.Manga, { nonNullable: true, validators: [Validators.required] }),\n folderWatching: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n includeInDashboard: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n includeInRecommended: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n includeInSearch: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n manageCollections: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n manageReadingLists: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n allowScrobbling: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n allowMetadataMatching: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n collapseSeriesRelationships: new FormControl(false, { nonNullable: true, validators: [Validators.required] }),\n });\n\n selectedFolders: string[] = [];\n madeChanges = false;\n libraryTypes: string[] = []\n\n isAddLibrary = false;\n setupStep = StepID.General;\n fileTypeGroups = allFileTypeGroup;\n excludePatterns: Array = [''];\n\n tasks: ActionItem[] = this.getTasks();\n\n get IsKavitaPlusEligible() {\n const libType = parseInt(this.libraryForm.get('type')?.value + '', 10) as LibraryType;\n return libType === LibraryType.Manga || libType === LibraryType.LightNovel;\n }\n\n ngOnInit(): void {\n this.settingService.getLibraryTypes().subscribe((types) => {\n this.libraryTypes = types;\n this.cdRef.markForCheck();\n });\n\n if (this.library === undefined) {\n this.isAddLibrary = true;\n this.cdRef.markForCheck();\n }\n\n if (this.library?.coverImage != null && this.library?.coverImage !== '') {\n this.imageUrls.push(this.imageService.getLibraryCoverImage(this.library.id));\n this.cdRef.markForCheck();\n }\n\n if (this.library && !(this.library.type === LibraryType.Manga || this.library.type === LibraryType.LightNovel) ) {\n this.libraryForm.get('allowScrobbling')?.setValue(false);\n this.libraryForm.get('allowMetadataMatching')?.setValue(false);\n this.libraryForm.get('allowScrobbling')?.disable();\n this.libraryForm.get('allowMetadataMatching')?.disable();\n }\n\n this.libraryForm.get('name')?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n switchMap(name => this.libraryService.libraryNameExists(name)),\n tap(exists => {\n const isExistingName = this.libraryForm.get('name')?.value === this.library?.name;\n if (!exists || isExistingName) {\n this.libraryForm.get('name')?.setErrors(null);\n } else {\n this.libraryForm.get('name')?.setErrors({duplicateName: true})\n }\n this.cdRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe();\n\n\n this.setValues();\n\n // This needs to only apply after first render\n this.libraryForm.get('type')?.valueChanges.pipe(\n tap((type: LibraryType) => {\n const libType = parseInt(type + '', 10) as LibraryType;\n switch (libType) {\n case LibraryType.Manga:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\n break;\n case LibraryType.Comic:\n case LibraryType.ComicVine:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\n break;\n case LibraryType.Book:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(true);\n break;\n case LibraryType.LightNovel:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(true);\n break;\n case LibraryType.Images:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\n break;\n }\n\n this.libraryForm.get('allowScrobbling')?.setValue(this.IsKavitaPlusEligible);\n this.libraryForm.get('allowMetadataMatching')?.setValue(this.IsKavitaPlusEligible);\n\n if (!this.IsKavitaPlusEligible) {\n this.libraryForm.get('allowScrobbling')?.disable();\n this.libraryForm.get('allowMetadataMatching')?.disable();\n } else {\n this.libraryForm.get('allowScrobbling')?.enable();\n this.libraryForm.get('allowMetadataMatching')?.enable();\n }\n this.cdRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe();\n }\n\n setValues() {\n if (this.library !== undefined) {\n this.libraryForm.get('name')?.setValue(this.library.name);\n this.libraryForm.get('type')?.setValue(this.library.type);\n this.libraryForm.get('folderWatching')?.setValue(this.library.folderWatching);\n this.libraryForm.get('includeInDashboard')?.setValue(this.library.includeInDashboard);\n this.libraryForm.get('includeInRecommended')?.setValue(this.library.includeInRecommended);\n this.libraryForm.get('includeInSearch')?.setValue(this.library.includeInSearch);\n this.libraryForm.get('manageCollections')?.setValue(this.library.manageCollections);\n this.libraryForm.get('manageReadingLists')?.setValue(this.library.manageReadingLists);\n this.libraryForm.get('collapseSeriesRelationships')?.setValue(this.library.collapseSeriesRelationships);\n this.libraryForm.get('allowScrobbling')?.setValue(this.IsKavitaPlusEligible ? this.library.allowScrobbling : false);\n this.libraryForm.get('allowMetadataMatching')?.setValue(this.IsKavitaPlusEligible ? this.library.allowMetadataMatching : false);\n this.selectedFolders = this.library.folders;\n\n this.madeChanges = false;\n\n for(let fileTypeGroup of allFileTypeGroup) {\n this.libraryForm.addControl(fileTypeGroup + '', new FormControl(this.library.libraryFileTypes.includes(fileTypeGroup), []));\n }\n for(let glob of this.library.excludePatterns) {\n this.libraryForm.addControl('excludeGlob-' , new FormControl(glob, []));\n }\n this.excludePatterns = this.library.excludePatterns;\n } else {\n for(let fileTypeGroup of allFileTypeGroup) {\n this.libraryForm.addControl(fileTypeGroup + '', new FormControl(true, []));\n }\n }\n\n if (this.excludePatterns.length === 0) {\n this.excludePatterns = [''];\n }\n\n this.cdRef.markForCheck();\n }\n\n updateGlobs(items: Array) {\n this.excludePatterns = items;\n this.cdRef.markForCheck();\n }\n\n isDisabled() {\n return !(this.libraryForm.valid && this.selectedFolders.length > 0);\n }\n\n reset() {\n this.setValues();\n }\n\n close(returnVal= false) {\n this.modal.close(returnVal);\n }\n\n forceScan() {\n this.libraryService.scan(this.library!.id, true)\n .subscribe(() => {\n this.toastr.info(translate('toasts.forced-scan-queued', {name: this.library!.name}));\n this.close();\n });\n }\n\n async save() {\n const model = this.libraryForm.value;\n model.folders = this.selectedFolders;\n model.fileGroupTypes = [];\n for(let fileTypeGroup of allFileTypeGroup) {\n if (model[fileTypeGroup]) {\n model.fileGroupTypes.push(fileTypeGroup);\n }\n }\n model.excludePatterns = this.excludePatterns;\n\n if (this.libraryForm.errors) {\n return;\n }\n\n if (this.library !== undefined) {\n model.id = this.library.id;\n model.folders = model.folders.map((item: string) => item.startsWith('\\\\') ? item.substr(1, item.length) : item);\n model.type = parseInt(model.type, 10);\n\n if (model.type !== this.library.type) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-library-type-change'))) return;\n }\n\n this.libraryService.update(model).subscribe(() => {\n this.close(true);\n });\n } else {\n model.folders = model.folders.map((item: string) => item.startsWith('\\\\') ? item.substr(1, item.length) : item);\n model.type = parseInt(model.type, 10);\n this.libraryService.create(model).subscribe(() => {\n this.toastr.success(translate('toasts.library-created'));\n this.close(true);\n });\n }\n }\n\n nextStep() {\n this.setupStep++;\n switch(this.setupStep) {\n case StepID.Folder:\n this.active = TabID.Folder;\n break;\n case StepID.Cover:\n this.active = TabID.Cover;\n break;\n case StepID.Advanced:\n this.active = TabID.Advanced;\n break;\n }\n this.cdRef.markForCheck();\n }\n\n applyCoverImage(coverUrl: string) {\n this.uploadService.updateLibraryCoverImage(this.library!.id, coverUrl).subscribe(() => {});\n }\n\n updateCoverImageIndex(selectedIndex: number) {\n if (selectedIndex <= 0) return;\n this.applyCoverImage(this.imageUrls[selectedIndex]);\n }\n\n resetCoverImage() {\n this.uploadService.updateLibraryCoverImage(this.library!.id, '', false).subscribe(() => {});\n }\n\n openDirectoryPicker() {\n const modalRef = this.modalService.open(DirectoryPickerComponent, { scrollable: true, size: 'lg' });\n modalRef.closed.subscribe((closeResult: DirectoryPickerResult) => {\n if (closeResult.success) {\n if (!this.selectedFolders.includes(closeResult.folderPath)) {\n this.selectedFolders.push(closeResult.folderPath);\n this.madeChanges = true;\n this.cdRef.markForCheck();\n }\n }\n });\n }\n\n removeFolder(folder: string) {\n this.selectedFolders = this.selectedFolders.filter(item => item !== folder);\n this.madeChanges = true;\n this.cdRef.markForCheck();\n }\n\n isNextDisabled() {\n switch (this.setupStep) {\n case StepID.General:\n return this.libraryForm.get('name')?.invalid || this.libraryForm.get('type')?.invalid;\n case StepID.Folder:\n return this.selectedFolders.length === 0;\n case StepID.Cover:\n return false; // Covers are optional\n case StepID.Advanced:\n return false; // Advanced are optional\n }\n }\n\n getTasks() {\n const blackList = [Action.Edit];\n return this.actionFactoryService.getActionablesForSettingsPage(this.actionFactoryService.getLibraryActions(this.runTask.bind(this)), blackList);\n }\n\n async runTask(action: ActionItem) {\n switch (action.action) {\n case Action.Scan:\n await this.actionService.scanLibrary(this.library!);\n break;\n case Action.RefreshMetadata:\n await this.actionService.refreshLibraryMetadata(this.library!);\n break;\n case Action.GenerateColorScape:\n await this.actionService.refreshLibraryMetadata(this.library!, undefined, false);\n break;\n case (Action.AnalyzeFiles):\n await this.actionService.analyzeFiles(this.library!);\n break;\n case Action.Delete:\n await this.actionService.deleteLibrary(this.library!, () => {\n this.modal.dismiss();\n });\n break;\n }\n }\n}\n", "\n
\n

\n @if (!isAddLibrary) {\n {{t('edit-title', {name: library!.name | sentenceCase})}}\n } @else {\n {{t('add-title')}}\n }\n

\n \n
\n
\n
\n
    \n\n
  • \n {{t(TabID.General)}}\n \n
    \n \n @if (libraryForm.get('name'); as formControl) {\n \n @if (libraryForm.dirty || libraryForm.touched) {\n
    \n @if (formControl.errors?.required) {\n
    {{t('required-field')}}
    \n }\n\n @if (formControl.errors?.duplicateName) {\n
    {{t('library-name-unique')}}
    \n }\n
    \n }\n\n }\n\n
    \n\n
    \n \n \n @if(IsKavitaPlusEligible) {\n \n {{t('kavitaplus-eligible-label')}}\n \n \n }\n {{t('type-tooltip')}}\n {{t('kavitaplus-eligible-tooltip')}}\n \n \n \n \n
    \n
    \n {{t('last-scanned-label')}}\n {{library?.lastScanned | date: 'short' | defaultDate}}\n
    \n
    \n
  • \n\n\n
  • \n {{t(TabID.Folder)}}\n \n

    {{t('folder-description')}}

    \n
      \n @for(folder of selectedFolders; track folder) {\n
    • \n {{folder}}\n \n
    • \n }\n\n
    \n
    \n \n
    \n
    \n

    {{t('help-us-part-1')}}{{t('help-us-part-2')}} {{t('help-us-part-3')}}

    \n
    \n
    \n

    {{t('naming-conventions-part-1')}}{{t('naming-conventions-part-2')}} {{t('naming-conventions-part-3')}}

    \n
    \n
    \n
  • \n\n
  • \n {{t(TabID.Cover)}}\n \n @if (isAddLibrary) {\n

    {{t('cover-description')}}

    \n }\n\n

    {{t('cover-description-extra')}}

    \n \n
    \n
  • \n\n
  • \n {{t(TabID.Advanced)}}\n \n
    \n \n \n
    \n @for (group of fileTypeGroups; track group) {\n
    \n \n \n
    \n }\n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n \n \n \n \n \n
    \n\n
    \n
  • \n\n \n @if (!isAddLibrary) {\n
  • \n {{t(TabID.Tasks)}}\n \n @for(task of tasks; track task.action) {\n
    \n \n \n \n
    \n }\n
    \n
  • \n\n }\n\n\n
\n\n
\n
\n
\n
\n \n \n \n\n @if (isAddLibrary && setupStep !== 3) {\n \n } @else {\n \n }\n
\n\n
\n"], "mappings": "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", "names": ["UploadService", "constructor", "httpClient", "baseUrl", "environment", "apiUrl", "toastr", "inject", "ToastrService", "uploadByUrl", "url", "post", "TextResonse", "updateSeriesCoverImage", "seriesId", "lockCover", "id", "_cleanBase64Url", "pipe", "tap", "_", "info", "translate", "updateCollectionCoverImage", "tagId", "updateReadingListCoverImage", "readingListId", "updateChapterCoverImage", "chapterId", "updateVolumeCoverImage", "volumeId", "updateLibraryCoverImage", "libraryId", "updatePersonCoverImage", "personId", "resetChapterCoverLock", "startsWith", "split", "\u0275\u0275inject", "HttpClient", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "changeMode", "\u0275\u0275text", "openFileSelector_r4", "openFileSelector", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "t_r5", "\u0275\u0275pureFunction0", "_c0", "\u0275\u0275textInterpolate1", "_r6", "loadImageFromUrl", "mode", "\u0275\u0275property", "tmp_6_0", "form", "get", "value", "length", "\u0275\u0275template", "CoverImageChooserComponent_ng_container_0_ng_template_4_Conditional_0_Template", "CoverImageChooserComponent_ng_container_0_ng_template_4_Conditional_1_Template", "\u0275\u0275conditional", "_r8", "resetImage", "_r7", "reset", "CoverImageChooserComponent_ng_container_0_Conditional_7_Conditional_2_Template", "\u0275\u0275pureFunction1", "_c1", "showApplyButton", "selectedIndex", "imageService", "resetCoverImage", "_r11", "\u0275$index_83_r10", "$index", "applyImage", "appliedIndex", "_r9", "selectImage", "CoverImageChooserComponent_ng_container_0_For_9_Conditional_2_Template", "url_r12", "\u0275\u0275elementContainerStart", "$event", "_r1", "dropped", "fileOver", "fileLeave", "CoverImageChooserComponent_ng_container_0_ng_template_4_Template", "CoverImageChooserComponent_ng_container_0_ng_template_5_Template", "CoverImageChooserComponent_ng_container_0_Conditional_7_Template", "\u0275\u0275repeaterCreate", "CoverImageChooserComponent_ng_container_0_For_9_Template", "\u0275\u0275repeaterTrackByIdentity", "acceptableExtensions", "showReset", "\u0275\u0275repeater", "imageUrls", "CoverImageChooserComponent", "constructor", "document", "cdRef", "inject", "ChangeDetectorRef", "ImageService", "fb", "FormBuilder", "toastr", "ToastrService", "uploadService", "UploadService", "applyCover", "EventEmitter", "resetCover", "imageUrlsChange", "resetClicked", "imageSelected", "selectedBase64Url", "files", "join", "ngOnInit", "group", "coverImageUrl", "FormControl", "markForCheck", "getBase64Image", "img", "canvas", "createElement", "width", "height", "ctx", "getContext", "alpha", "drawImage", "toDataURL", "index", "callback", "startsWith", "imgUrl", "Image", "crossOrigin", "src", "onload", "e", "handleUrlImageAdd", "emit", "onerror", "error", "translate", "setValue", "loadImage", "url", "trim", "uploadByUrl", "subscribe", "filename", "getCoverUploadImage", "setupEnterHandler", "setTimeout", "querySelector", "focus", "droppedFile", "fileEntry", "isFile", "file", "reader", "FileReader", "handleFileImageAdd", "readAsDataURL", "target", "push", "result", "elem", "fromEvent", "pipe", "takeWhile", "event", "key", "KEY_CODES", "ENTER", "ESC_KEY", "stopPropagation", "\u0275\u0275directiveInject", "DOCUMENT", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "CoverImageChooserComponent_ng_container_0_Template", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "NgxFileDropModule", "NgxFileDropComponent", "NgxFileDropContentTemplateDirective", "ImageComponent", "TranslocoModule", "TranslocoDirective", "NgClass", "styles", "changeDetection", "FileTypeGroup", "allFileTypeGroup", "Object", "keys", "filter", "key", "isNaN", "Number", "parseInt", "map", "FileTypeGroupPipe", "transform", "value", "FileTypeGroup", "Archive", "translate", "Epub", "Pdf", "Images", "pure", "standalone", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "add", "\u0275$index_5_r3", "$index", "remove", "\u0275\u0275advance", "\u0275\u0275propertyInterpolate1", "\u0275\u0275textInterpolate", "label", "t_r4", "\u0275\u0275property", "\u0275\u0275repeaterCreate", "EditListComponent_form_0_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "form", "\u0275\u0275repeater", "Items", "EditListComponent", "constructor", "cdRef", "inject", "ChangeDetectorRef", "destroyRef", "DestroyRef", "items", "updateItems", "EventEmitter", "FormGroup", "combinedItems", "split", "ngOnInit", "forEach", "link", "index", "addControl", "FormControl", "join", "valueChanges", "pipe", "debounceTime", "distinctUntilChanged", "tap", "data", "emit", "takeUntilDestroyed", "subscribe", "markForCheck", "length", "initialControls", "Object", "keys", "controls", "filter", "key", "startsWith", "get", "setValue", "emitEvent", "removeControl", "map", "value", "item", "v", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "EditListComponent_form_0_Template", "CommonModule", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "Select2Module", "TranslocoDirective", "changeDetection", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "tmp_5_0", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "listForm", "get", "setValue", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "t_r4", "\u0275\u0275property", "collectionTag_r6", "_r5", "$implicit", "addToCollection", "\u0275\u0275template", "BulkAddToCollectionComponent_ng_container_0_For_10_Conditional_2_Template", "\u0275\u0275textInterpolate1", "title", "\u0275\u0275conditional", "promoted", "\u0275\u0275elementContainerStart", "_r1", "close", "BulkAddToCollectionComponent_ng_container_0_Conditional_7_Template", "\u0275\u0275repeaterCreate", "BulkAddToCollectionComponent_ng_container_0_For_10_Template", "_forTrack0", "BulkAddToCollectionComponent_ng_container_0_Conditional_12_Template", "BulkAddToCollectionComponent_ng_container_0_Conditional_13_Template", "create", "lists", "length", "MaxItems", "\u0275\u0275repeater", "\u0275\u0275pipeBind2", "filterList", "loading", "isCreating", "BulkAddToCollectionComponent", "constructor", "modal", "inject", "NgbActiveModal", "collectionService", "CollectionTagService", "toastr", "ToastrService", "cdRef", "ChangeDetectorRef", "seriesIds", "FormGroup", "listItem", "toLowerCase", "indexOf", "value", "filterQuery", "ngOnInit", "addControl", "FormControl", "markForCheck", "allCollections", "subscribe", "tags", "filter", "t", "source", "ScrobbleProvider", "Kavita", "ngAfterViewInit", "inputElem", "nativeElement", "select", "tagName", "addByMultiple", "success", "translate", "collectionName", "tag", "id", "selectors", "viewQuery", "rf", "ctx", "BulkAddToCollectionComponent_ng_container_0_Template", "CommonModule", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "FilterPipe", "NgbModalModule", "TranslocoDirective", "styles", "encapsulation", "changeDetection", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "tmp_5_0", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "listForm", "get", "setValue", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "t_r4", "\u0275\u0275property", "readingList_r6", "_r5", "$implicit", "addToList", "\u0275\u0275template", "AddToListModalComponent_ng_container_0_li_9_i_2_Template", "\u0275\u0275textInterpolate1", "title", "promoted", "\u0275\u0275elementContainerStart", "_r1", "close", "AddToListModalComponent_ng_container_0_div_7_Template", "AddToListModalComponent_ng_container_0_li_9_Template", "AddToListModalComponent_ng_container_0_li_11_Template", "AddToListModalComponent_ng_container_0_li_12_Template", "create", "lists", "length", "\u0275\u0275pipeBind2", "filterList", "loading", "ADD_FLOW", "AddToListModalComponent", "constructor", "modal", "readingListService", "toastr", "FormGroup", "listItem", "toLowerCase", "indexOf", "value", "filterQuery", "translocoService", "inject", "TranslocoService", "ngOnInit", "addControl", "FormControl", "getReadingLists", "subscribe", "result", "ngAfterViewInit", "inputElem", "nativeElement", "select", "createList", "list", "readingList", "type", "Multiple_Series", "seriesIds", "undefined", "updateByMultipleSeries", "id", "success", "translate", "seriesId", "Series", "updateBySeries", "Volume", "volumeId", "updateByVolume", "Chapter", "chapterId", "updateByChapter", "Multiple", "volumeIds", "chapterIds", "updateByMultiple", "\u0275\u0275directiveInject", "NgbActiveModal", "ReadingListService", "ToastrService", "selectors", "viewQuery", "rf", "ctx", "AddToListModalComponent_ng_container_0_Template", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "NgIf", "NgFor", "FilterPipe", "TranslocoDirective", "styles", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "t_r3", "\u0275\u0275template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_div_1_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_div_2_Template", "\u0275\u0275property", "tmp_5_0", "ctx_r1", "reviewGroup", "get", "errors", "required", "tmp_6_0", "duplicateName", "\u0275\u0275textInterpolate", "\u0275\u0275element", "EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_div_1_ng_template_6_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275elementContainer", "promotedTooltip_r4", "\u0275\u0275elementContainerStart", "EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_div_1_Template", "accountService", "hasAdminRole", "user_r5", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_13_div_4_div_1_Template", "formControl_r6", "min", "max", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_13_div_4_Template", "\u0275\u0275classProp", "invalid", "touched", "dirty", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_14_div_4_div_1_Template", "formControl_r7", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_14_div_4_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_18_div_4_div_1_Template", "formControl_r8", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_18_div_4_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_19_div_4_div_1_Template", "formControl_r9", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_19_div_4_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_13_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_14_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_18_Template", "EditReadingListModalComponent_ng_container_0_ng_template_11_div_19_Template", "\u0275\u0275pipeBind1", "currentUser$", "\u0275\u0275twoWayListener", "$event", "\u0275\u0275restoreView", "_r10", "\u0275\u0275nextContext", "i0", "\u0275\u0275twoWayBindingSet", "imageUrls", "\u0275\u0275resetView", "\u0275\u0275listener", "updateSelectedIndex", "updateSelectedImage", "handleReset", "\u0275\u0275twoWayProperty", "readingList", "coverImageLocked", "_r1", "close", "active", "EditReadingListModalComponent_ng_container_0_ng_template_11_Template", "EditReadingListModalComponent_ng_container_0_ng_template_15_Template", "save", "\u0275\u0275pureFunction1", "_c0", "title", "\u0275\u0275classMapInterpolate1", "utilityService", "getActiveBreakpoint", "Breakpoint", "Mobile", "\u0275\u0275propertyInterpolate", "TabID", "General", "CoverImage", "nav_r11", "EditReadingListModalComponent", "constructor", "ngModal", "readingListService", "uploadService", "toastr", "imageService", "cdRef", "destroyRef", "inject", "DestroyRef", "coverImageIndex", "selectedCover", "ngOnInit", "FormGroup", "FormControl", "nonNullable", "validators", "Validators", "summary", "promoted", "startingMonth", "startingYear", "endingMonth", "endingYear", "valueChanges", "pipe", "debounceTime", "distinctUntilChanged", "switchMap", "name", "nameExists", "tap", "exists", "isExistingName", "value", "setErrors", "markForCheck", "takeUntilDestroyed", "subscribe", "push", "randomize", "getReadingListCoverImage", "id", "items", "length", "getListItems", "map", "rli", "getChapterCoverImage", "chapterId", "dismiss", "undefined", "trim", "model", "__spreadProps", "__spreadValues", "readingListId", "apis", "update", "updateReadingListCoverImage", "forkJoin", "results", "success", "translate", "index", "detectChanges", "url", "\u0275\u0275directiveInject", "NgbActiveModal", "ReadingListService", "UtilityService", "UploadService", "ToastrService", "ImageService", "ChangeDetectorRef", "AccountService", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "EditReadingListModalComponent_ng_container_0_Template", "NgbNav", "NgbNavItem", "NgbNavItemRole", "NgbNavLink", "NgbNavContent", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NumberValueAccessor", "CheckboxControlValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "NgIf", "NgbTooltip", "NgTemplateOutlet", "CoverImageChooserComponent", "NgbNavOutlet", "AsyncPipe", "TranslocoDirective", "styles", "changeDetection", "ChapterService", "constructor", "httpClient", "baseUrl", "environment", "apiUrl", "getChapterMetadata", "chapterId", "get", "deleteChapter", "delete", "deleteMultipleChapters", "seriesId", "chapterIds", "post", "updateChapter", "chapter", "TextResonse", "\u0275\u0275inject", "HttpClient", "factory", "\u0275fac", "providedIn", "VolumeService", "constructor", "httpClient", "baseUrl", "environment", "apiUrl", "getVolumeMetadata", "volumeId", "get", "deleteVolume", "delete", "updateVolume", "volume", "post", "TextResonse", "\u0275\u0275inject", "HttpClient", "factory", "\u0275fac", "providedIn", "PlusMediaFormat", "PlusMediaFormatPipe", "transform", "value", "PlusMediaFormat", "Manga", "translate", "Comic", "LightNovel", "Book", "pure", "standalone", "\u0275\u0275element", "\u0275\u0275property", "ctx_r1", "item", "series", "coverUrl", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "MatchSeriesResultItemComponent_ng_container_0_For_14_Conditional_1_Template", "\u0275\u0275textInterpolate1", "synm_r3", "\u0275\u0275advance", "\u0275\u0275conditional", "\u0275$index_27_r4", "\u0275$count_27_r5", "\u0275\u0275listener", "$event", "i0", "\u0275\u0275restoreView", "_r6", "\u0275\u0275resetView", "stopPropagation", "summary", "siteUrl", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate", "t_r7", "\u0275\u0275pureFunction1", "_c0", "volumes", "chapters", "MatchSeriesResultItemComponent_ng_container_0_Conditional_17_Conditional_1_Template", "MatchSeriesResultItemComponent_ng_container_0_Conditional_17_Conditional_2_Template", "\u0275\u0275pipeBind1", "plusMediaFormat", "\u0275\u0275elementContainerStart", "_r1", "\u0275\u0275nextContext", "selectItem", "MatchSeriesResultItemComponent_ng_container_0_Conditional_4_Template", "\u0275\u0275repeaterCreate", "MatchSeriesResultItemComponent_ng_container_0_For_14_Template", "\u0275\u0275repeaterTrackByIdentity", "MatchSeriesResultItemComponent_ng_container_0_Conditional_15_Template", "MatchSeriesResultItemComponent_ng_container_0_Conditional_16_Template", "MatchSeriesResultItemComponent_ng_container_0_Conditional_17_Template", "\u0275\u0275classMapInterpolate1", "isDarkMode", "name", "matchRating", "\u0275\u0275repeater", "synonyms", "isSelected", "MatchSeriesResultItemComponent", "constructor", "cdRef", "inject", "ChangeDetectorRef", "selected", "EventEmitter", "markForCheck", "emit", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "MatchSeriesResultItemComponent_ng_container_0_Template", "ImageComponent", "TranslocoPercentPipe", "ReadMoreComponent", "TranslocoDirective", "PlusMediaFormatPipe", "LoadingComponent", "styles", "changeDetection", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "t_r3", "\u0275\u0275template", "MatchSeriesModalComponent_ng_container_0_ng_template_13_Conditional_1_Conditional_1_Conditional_0_Template", "\u0275\u0275conditional", "formControl_r4", "errors", "required", "\u0275\u0275element", "MatchSeriesModalComponent_ng_container_0_ng_template_13_Conditional_1_Conditional_1_Template", "\u0275\u0275classProp", "invalid", "untouched", "MatchSeriesModalComponent_ng_container_0_ng_template_13_Conditional_1_Template", "tmp_5_0", "ctx_r1", "formGroup", "get", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r5", "\u0275\u0275nextContext", "\u0275\u0275resetView", "selectMatch", "\u0275\u0275property", "item_r6", "\u0275\u0275pipeBind1", "themeService", "isDarkMode$", "\u0275\u0275textInterpolate1", "MatchSeriesModalComponent_ng_container_0_Conditional_24_ForEmpty_3_Conditional_0_Template", "isLoading", "\u0275\u0275repeaterCreate", "MatchSeriesModalComponent_ng_container_0_Conditional_24_For_2_Template", "_forTrack0", "MatchSeriesModalComponent_ng_container_0_Conditional_24_ForEmpty_3_Template", "\u0275\u0275repeater", "matches", "\u0275\u0275elementContainerStart", "_r1", "close", "MatchSeriesModalComponent_ng_container_0_ng_template_13_Template", "\u0275\u0275templateRefExtractor", "MatchSeriesModalComponent_ng_container_0_ng_template_18_Template", "search", "MatchSeriesModalComponent_ng_container_0_Conditional_24_Template", "save", "\u0275\u0275pureFunction1", "_c0", "series", "name", "tmp_14_0", "value", "tmp_16_0", "MatchSeriesModalComponent", "constructor", "cdRef", "inject", "ChangeDetectorRef", "seriesService", "SeriesService", "modalService", "NgbActiveModal", "toastr", "ToastrService", "ThemeService", "FormGroup", "ngOnInit", "addControl", "FormControl", "dontMatch", "markForCheck", "model", "seriesId", "id", "matchSeries", "subscribe", "results", "updateDontMatch", "_", "success", "translate", "item", "data", "tags", "genres", "updateMatch", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "MatchSeriesModalComponent_ng_container_0_Template", "AsyncPipe", "TranslocoDirective", "MatchSeriesResultItemComponent", "LoadingComponent", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "CheckboxControlValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "SettingItemComponent", "SettingSwitchComponent", "styles", "changeDetection", "ActionService", "constructor", "chapterService", "inject", "ChapterService", "volumeService", "VolumeService", "libraryService", "LibraryService", "seriesService", "SeriesService", "readerService", "ReaderService", "toastr", "ToastrService", "modalService", "NgbModal", "confirmService", "ConfirmService", "memberService", "MemberService", "deviceService", "DeviceService", "collectionTagService", "CollectionTagService", "filterService", "FilterService", "readingListService", "ReadingListService", "readingListModalRef", "collectionModalRef", "scanLibrary", "library", "callback", "__async", "hasOwnProperty", "id", "undefined", "scan", "pipe", "take", "subscribe", "res", "info", "translate", "name", "refreshLibraryMetadata", "forceUpdate", "forceColorscape", "confirm", "message", "refreshMetadata", "editLibrary", "modalRef", "open", "LibrarySettingsModalComponent", "DefaultModalOptions", "componentInstance", "closed", "closeResult", "analyzeFiles", "alert", "analyze", "deleteLibrary", "delete", "markSeriesAsRead", "series", "markRead", "pagesRead", "pages", "success", "markSeriesAsUnread", "markUnread", "scanSeries", "libraryId", "analyzeFilesForSeries", "refreshSeriesMetadata", "markVolumeAsRead", "seriesId", "volume", "markVolumeRead", "chapters", "forEach", "c", "markVolumeAsUnread", "markVolumeUnread", "markChapterAsRead", "chapter", "saveProgress", "volumeId", "results", "markChapterAsUnread", "markMultipleAsRead", "volumes", "markMultipleRead", "map", "v", "markMultipleAsUnread", "markMultipleUnread", "markMultipleSeriesAsRead", "markMultipleSeriesRead", "s", "markMultipleSeriesAsUnread", "markMultipleSeriesUnread", "promoteMultipleCollections", "collections", "promoted", "deleteMultipleCollections", "promoteMultipleReadingLists", "readingLists", "deleteMultipleChapters", "chapterIds", "deleteMultipleReadingLists", "addMultipleToReadingList", "AddToListModalComponent", "scrollable", "size", "fullscreen", "volumeIds", "title", "type", "ADD_FLOW", "Multiple", "dismissed", "addMultipleSeriesToWantToReadList", "seriesIds", "addSeriesToWantToRead", "removeMultipleSeriesFromWantToReadList", "removeSeriesToWantToRead", "addMultipleSeriesToReadingList", "Multiple_Series", "addMultipleSeriesToCollectionTag", "BulkAddToCollectionComponent", "windowClass", "addSeriesToReadingList", "Series", "addVolumeToReadingList", "Volume", "addChapterToReadingList", "chapterId", "Chapter", "editReadingList", "readingList", "EditReadingListModalComponent", "list", "deleteMultipleSeries", "count", "length", "error", "deleteSeries", "deleteChapter", "deleteVolume", "sendToDevice", "device", "sendTo", "sendSeriesToDevice", "sendSeriesTo", "matchSeries", "ref", "MatchSeriesModalComponent", "saved", "deleteFilter", "filterId", "_", "factory", "\u0275fac", "providedIn", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "t_r2", "\u0275\u0275pureFunction1", "_c0", "\u0275\u0275pipeBind1", "ctx_r2", "library", "name", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275template", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_Conditional_3_Conditional_1_Conditional_1_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_Conditional_3_Conditional_1_Conditional_2_Template", "\u0275\u0275conditional", "formControl_r4", "errors", "required", "duplicateName", "\u0275\u0275element", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_Conditional_3_Conditional_1_Template", "\u0275\u0275classProp", "invalid", "touched", "libraryForm", "dirty", "\u0275\u0275property", "kavitaplusEligibleTooltip_r5", "\u0275$index_73_r7", "opt_r6", "\u0275\u0275pipeBind2", "lastScanned", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_Conditional_3_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_Conditional_8_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_ng_template_9_Template", "\u0275\u0275templateRefExtractor", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_ng_template_11_Template", "\u0275\u0275elementContainer", "\u0275\u0275repeaterCreate", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_For_17_Template", "\u0275\u0275repeaterTrackByIdentity", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_div_18_Template", "tmp_7_0", "get", "typeTooltip_r8", "IsKavitaPlusEligible", "\u0275\u0275repeater", "libraryTypes", "isAddLibrary", "\u0275\u0275listener", "folder_r11", "\u0275\u0275restoreView", "_r10", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "removeFolder", "LibrarySettingsModalComponent_ng_container_0_ng_template_17_For_4_Template", "_r9", "openDirectoryPicker", "selectedFolders", "WikiLink", "ManagingFiles", "\u0275\u0275sanitizeUrl", "Scanner", "LibrarySettingsModalComponent_ng_container_0_ng_template_21_Conditional_0_Template", "\u0275\u0275twoWayListener", "$event", "_r12", "i0", "\u0275\u0275twoWayBindingSet", "imageUrls", "updateCoverImageIndex", "applyCoverImage", "resetCoverImage", "\u0275\u0275twoWayProperty", "coverImage", "group_r13", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_2_For_2_Template", "fileTypeGroups", "_r14", "updateGlobs", "excludePatterns", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_2_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_6_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_10_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_14_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_18_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_22_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_26_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_30_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_ng_template_35_Template", "excludePatternTooltip", "task_r16", "_r15", "runTask", "description", "\u0275\u0275classMapInterpolate1", "action", "Action", "Delete", "title", "LibrarySettingsModalComponent_ng_container_0_Conditional_26_ng_template_3_For_1_Template", "_forTrack0", "tasks", "LibrarySettingsModalComponent_ng_container_0_Conditional_26_ng_template_3_Template", "TabID", "Tasks", "_r17", "nextStep", "isNextDisabled", "_r18", "save", "isDisabled", "\u0275\u0275elementContainerStart", "LibrarySettingsModalComponent_ng_container_0_Conditional_3_Template", "LibrarySettingsModalComponent_ng_container_0_Conditional_4_Template", "_r1", "close", "active", "LibrarySettingsModalComponent_ng_container_0_ng_template_13_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_17_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_21_Template", "LibrarySettingsModalComponent_ng_container_0_ng_template_25_Template", "LibrarySettingsModalComponent_ng_container_0_Conditional_26_Template", "forceScan", "reset", "LibrarySettingsModalComponent_ng_container_0_Conditional_35_Template", "LibrarySettingsModalComponent_ng_container_0_Conditional_36_Template", "utilityService", "getActiveBreakpoint", "Breakpoint", "Mobile", "\u0275\u0275propertyInterpolate", "General", "Folder", "setupStep", "Cover", "Advanced", "nav_r19", "StepID", "LibrarySettingsModalComponent", "constructor", "inject", "UtilityService", "modal", "NgbActiveModal", "destroyRef", "DestroyRef", "uploadService", "UploadService", "modalService", "NgbModal", "settingService", "SettingsService", "confirmService", "ConfirmService", "libraryService", "LibraryService", "toastr", "ToastrService", "cdRef", "ChangeDetectorRef", "imageService", "ImageService", "actionFactoryService", "ActionFactoryService", "actionService", "ActionService", "LibraryType", "translate", "ScannerExclude", "FormGroup", "FormControl", "nonNullable", "validators", "Validators", "type", "Manga", "folderWatching", "includeInDashboard", "includeInRecommended", "includeInSearch", "manageCollections", "manageReadingLists", "allowScrobbling", "allowMetadataMatching", "collapseSeriesRelationships", "madeChanges", "allFileTypeGroup", "getTasks", "libType", "parseInt", "value", "LightNovel", "ngOnInit", "getLibraryTypes", "subscribe", "types", "markForCheck", "undefined", "push", "getLibraryCoverImage", "id", "setValue", "disable", "valueChanges", "pipe", "debounceTime", "distinctUntilChanged", "switchMap", "libraryNameExists", "tap", "exists", "isExistingName", "setErrors", "takeUntilDestroyed", "setValues", "FileTypeGroup", "Archive", "Images", "Pdf", "Epub", "Comic", "ComicVine", "Book", "enable", "folders", "fileTypeGroup", "addControl", "libraryFileTypes", "includes", "glob", "length", "items", "valid", "returnVal", "scan", "info", "__async", "model", "fileGroupTypes", "map", "item", "startsWith", "substr", "confirm", "update", "create", "success", "coverUrl", "updateLibraryCoverImage", "selectedIndex", "open", "DirectoryPickerComponent", "scrollable", "size", "closed", "closeResult", "folderPath", "folder", "filter", "blackList", "Edit", "getActionablesForSettingsPage", "getLibraryActions", "bind", "Scan", "scanLibrary", "RefreshMetadata", "refreshLibraryMetadata", "GenerateColorScape", "AnalyzeFiles", "analyzeFiles", "deleteLibrary", "dismiss", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "LibrarySettingsModalComponent_ng_container_0_Template", "CommonModule", "NgIf", "NgTemplateOutlet", "DatePipe", "NgbModalModule", "NgbNavLink", "NgbNavItem", "NgbNavContent", "ReactiveFormsModule", "\u0275NgNoValidate", "NgSelectOption", "\u0275NgSelectMultipleOption", "DefaultValueAccessor", "CheckboxControlValueAccessor", "SelectControlValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "NgbTooltip", "SentenceCasePipe", "NgbNav", "NgbNavOutlet", "CoverImageChooserComponent", "TranslocoModule", "TranslocoDirective", "DefaultDatePipe", "FileTypeGroupPipe", "EditListComponent", "SettingItemComponent", "SettingSwitchComponent", "SettingButtonComponent", "changeDetection"] }