{"version":3,"sources":["src/app/_services/reading-list.service.ts","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","node_modules/ngx-file-drop/fesm2022/ngx-file-drop.mjs","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/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/admin/_modals/directory-picker/directory-picker.component.ts","src/app/admin/_modals/directory-picker/directory-picker.component.html","src/app/_pipes/default-date.pipe.ts","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/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts","src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html","src/app/_services/action.service.ts","src/app/_models/series-detail/relation-kind.ts","src/app/typeahead/_models/typeahead-settings.ts","src/app/_models/search/search-result-group.ts","src/app/_services/search.service.ts","src/app/_pipes/relationship.pipe.ts","src/app/cards/edit-series-relation/edit-series-relation.component.ts","src/app/cards/edit-series-relation/edit-series-relation.component.html","src/app/cards/_modals/edit-series-modal/edit-series-modal.component.ts","src/app/cards/_modals/edit-series-modal/edit-series-modal.component.html"],"sourcesContent":["import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { UtilityService } from '../shared/_services/utility.service';\nimport { Person } from '../_models/metadata/person';\nimport { PaginatedResult } from '../_models/pagination';\nimport { ReadingList, ReadingListItem } from '../_models/reading-list';\nimport { CblImportSummary } from '../_models/reading-list/cbl/cbl-import-summary';\nimport { TextResonse } from '../_types/text-response';\nimport { ActionItem } from './action-factory.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReadingListService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient, private utilityService: UtilityService) { }\n\n getReadingList(readingListId: number) {\n return this.httpClient.get(this.baseUrl + 'readinglist?readingListId=' + readingListId);\n }\n\n getReadingLists(includePromoted: boolean = true, sortByLastModified: boolean = false, pageNum?: number, itemsPerPage?: number) {\n let params = new HttpParams();\n params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);\n\n return this.httpClient.post>(this.baseUrl + 'readinglist/lists?includePromoted=' + includePromoted\n + '&sortByLastModified=' + sortByLastModified, {}, {observe: 'response', params}).pipe(\n map((response: any) => {\n return this.utilityService.createPaginatedResult(response, new PaginatedResult());\n })\n );\n }\n\n getReadingListsForSeries(seriesId: number) {\n return this.httpClient.get(this.baseUrl + 'readinglist/lists-for-series?seriesId=' + seriesId);\n }\n\n getListItems(readingListId: number) {\n return this.httpClient.get(this.baseUrl + 'readinglist/items?readingListId=' + readingListId);\n }\n\n createList(title: string) {\n return this.httpClient.post(this.baseUrl + 'readinglist/create', {title});\n }\n\n update(model: {readingListId: number, title?: string, summary?: string, promoted: boolean}) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update', model, TextResonse);\n }\n\n updateByMultiple(readingListId: number, seriesId: number, volumeIds: Array, chapterIds?: Array) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-multiple', {readingListId, seriesId, volumeIds, chapterIds}, TextResonse);\n }\n\n updateByMultipleSeries(readingListId: number, seriesIds: Array) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-multiple-series', {readingListId, seriesIds}, TextResonse);\n }\n\n updateBySeries(readingListId: number, seriesId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-series', {readingListId, seriesId}, TextResonse);\n }\n\n updateByVolume(readingListId: number, seriesId: number, volumeId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-volume', {readingListId, seriesId, volumeId}, TextResonse);\n }\n\n updateByChapter(readingListId: number, seriesId: number, chapterId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-chapter', {readingListId, seriesId, chapterId}, TextResonse);\n }\n\n delete(readingListId: number) {\n return this.httpClient.delete(this.baseUrl + 'readinglist?readingListId=' + readingListId, TextResonse);\n }\n\n updatePosition(readingListId: number, readingListItemId: number, fromPosition: number, toPosition: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-position', {readingListId, readingListItemId, fromPosition, toPosition}, TextResonse);\n }\n\n deleteItem(readingListId: number, readingListItemId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/delete-item', {readingListId, readingListItemId}, TextResonse);\n }\n\n removeRead(readingListId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/remove-read?readingListId=' + readingListId, {}, TextResonse);\n }\n\n actionListFilter(action: ActionItem, readingList: ReadingList, isAdmin: boolean) {\n if (readingList?.promoted && !isAdmin) return false;\n return true;\n }\n\n nameExists(name: string) {\n return this.httpClient.get(this.baseUrl + 'readinglist/name-exists?name=' + name);\n }\n\n validateCbl(form: FormData) {\n return this.httpClient.post(this.baseUrl + 'cbl/validate', form);\n }\n\n importCbl(form: FormData) {\n return this.httpClient.post(this.baseUrl + 'cbl/import', form);\n }\n\n getCharacters(readingListId: number) {\n return this.httpClient.get>(this.baseUrl + 'readinglist/characters?readingListId=' + readingListId);\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 {FormGroup, FormControl, 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, TranslocoService} from \"@ngneat/transloco\";\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\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 this.lists = tags;\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 >= 5) {\n
\n \n
\n \n \n
\n
\n }\n\n
    \n @for(collectionTag of lists | filter: filterList; let i = $index; track collectionTag.title) {\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 \"@ngneat/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 * as i0 from '@angular/core';\nimport { Directive, EventEmitter, TemplateRef, Component, Input, Output, ContentChild, ViewChild, NgModule } from '@angular/core';\nimport { timer } from 'rxjs';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n/**\r\n * fileEntry is an instance of {@link FileSystemFileEntry} or {@link FileSystemDirectoryEntry}.\r\n * Which one is it can be checked using {@link FileSystemEntry.isFile} or {@link FileSystemEntry.isDirectory}\r\n * properties of the given {@link FileSystemEntry}.\r\n */\nconst _c0 = [\"fileSelector\"];\nconst _c1 = a0 => ({\n openFileSelector: a0\n});\nfunction NgxFileDropComponent_ng_template_4_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.dropZoneLabel);\n }\n}\nfunction NgxFileDropComponent_ng_template_4_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\")(1, \"input\", 9);\n i0.ɵɵlistener(\"click\", function NgxFileDropComponent_ng_template_4_div_1_Template_input_click_1_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.openFileSelector($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵpropertyInterpolate(\"value\", ctx_r1.browseBtnLabel);\n i0.ɵɵproperty(\"className\", ctx_r1.browseBtnClassName);\n }\n}\nfunction NgxFileDropComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgxFileDropComponent_ng_template_4_div_0_Template, 2, 1, \"div\", 6)(1, NgxFileDropComponent_ng_template_4_div_1_Template, 2, 2, \"div\", 7);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropZoneLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showBrowseBtn);\n }\n}\nfunction NgxFileDropComponent_ng_template_6_Template(rf, ctx) {}\nclass NgxFileDropEntry {\n constructor(relativePath, fileEntry) {\n this.relativePath = relativePath;\n this.fileEntry = fileEntry;\n }\n}\nlet NgxFileDropContentTemplateDirective = /*#__PURE__*/(() => {\n class NgxFileDropContentTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgxFileDropContentTemplateDirective_Factory(t) {\n return new (t || NgxFileDropContentTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgxFileDropContentTemplateDirective,\n selectors: [[\"\", \"ngx-file-drop-content-tmp\", \"\"]]\n });\n }\n }\n return NgxFileDropContentTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxFileDropComponent = /*#__PURE__*/(() => {\n class NgxFileDropComponent {\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value != null && `${value}` !== 'false';\n }\n constructor(zone, renderer) {\n this.zone = zone;\n this.renderer = renderer;\n this.accept = '*';\n this.directory = false;\n this.multiple = true;\n this.dropZoneLabel = '';\n this.dropZoneClassName = 'ngx-file-drop__drop-zone';\n this.useDragEnter = false;\n this.contentClassName = 'ngx-file-drop__content';\n this.showBrowseBtn = false;\n this.browseBtnClassName = 'btn btn-primary btn-xs ngx-file-drop__browse-btn';\n this.browseBtnLabel = 'Browse files';\n this.onFileDrop = new EventEmitter();\n this.onFileOver = new EventEmitter();\n this.onFileLeave = new EventEmitter();\n this.isDraggingOverDropZone = false;\n this.globalDraggingInProgress = false;\n this.files = [];\n this.numOfActiveReadEntries = 0;\n this.helperFormEl = null;\n this.fileInputPlaceholderEl = null;\n this.dropEventTimerSubscription = null;\n this._disabled = false;\n this.openFileSelector = event => {\n if (this.fileSelector && this.fileSelector.nativeElement) {\n this.fileSelector.nativeElement.click();\n }\n };\n this.globalDragStartListener = this.renderer.listen('document', 'dragstart', evt => {\n this.globalDraggingInProgress = true;\n });\n this.globalDragEndListener = this.renderer.listen('document', 'dragend', evt => {\n this.globalDraggingInProgress = false;\n });\n }\n ngOnDestroy() {\n if (this.dropEventTimerSubscription) {\n this.dropEventTimerSubscription.unsubscribe();\n this.dropEventTimerSubscription = null;\n }\n this.globalDragStartListener();\n this.globalDragEndListener();\n this.files = [];\n this.helperFormEl = null;\n this.fileInputPlaceholderEl = null;\n }\n onDragOver(event) {\n if (this.useDragEnter) {\n this.preventAndStop(event);\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'copy';\n }\n } else if (!this.isDropzoneDisabled() && !this.useDragEnter && event.dataTransfer) {\n if (!this.isDraggingOverDropZone) {\n this.isDraggingOverDropZone = true;\n this.onFileOver.emit(event);\n }\n this.preventAndStop(event);\n event.dataTransfer.dropEffect = 'copy';\n }\n }\n onDragEnter(event) {\n if (!this.isDropzoneDisabled() && this.useDragEnter) {\n if (!this.isDraggingOverDropZone) {\n this.isDraggingOverDropZone = true;\n this.onFileOver.emit(event);\n }\n this.preventAndStop(event);\n }\n }\n onDragLeave(event) {\n if (!this.isDropzoneDisabled()) {\n if (this.isDraggingOverDropZone) {\n this.isDraggingOverDropZone = false;\n this.onFileLeave.emit(event);\n }\n this.preventAndStop(event);\n }\n }\n dropFiles(event) {\n if (this.isDropzoneDisabled()) {\n return;\n }\n this.isDraggingOverDropZone = false;\n if (event.dataTransfer) {\n let items;\n if (event.dataTransfer.items) {\n items = event.dataTransfer.items;\n } else {\n items = event.dataTransfer.files;\n }\n this.preventAndStop(event);\n this.checkFiles(items);\n }\n }\n /**\r\n * Processes the change event of the file input and adds the given files.\r\n * @param Event event\r\n */\n uploadFiles(event) {\n if (this.isDropzoneDisabled()) {\n return;\n }\n if (event.target) {\n const items = event.target.files || [];\n this.checkFiles(items);\n this.resetFileInput();\n }\n }\n getFakeDropEntry(file) {\n const fakeFileEntry = {\n name: file.name,\n isDirectory: false,\n isFile: true,\n file: callback => callback(file)\n };\n return new NgxFileDropEntry(fakeFileEntry.name, fakeFileEntry);\n }\n checkFile(item) {\n if (!item) {\n return;\n }\n // if (\"getAsFile\" in item) {\n // const file = item.getAsFile();\n // if (file) {\n // this.addToQueue(\n // this.getFakeDropEntry(file)\n // );\n // return;\n // }\n // }\n if (\"webkitGetAsEntry\" in item) {\n let entry = item.webkitGetAsEntry();\n if (entry) {\n if (entry.isFile) {\n const toUpload = new NgxFileDropEntry(entry.name, entry);\n this.addToQueue(toUpload);\n } else if (entry.isDirectory) {\n this.traverseFileTree(entry, entry.name);\n }\n return;\n }\n }\n this.addToQueue(this.getFakeDropEntry(item));\n }\n checkFiles(items) {\n for (let i = 0; i < items.length; i++) {\n this.checkFile(items[i]);\n }\n if (this.dropEventTimerSubscription) {\n this.dropEventTimerSubscription.unsubscribe();\n }\n this.dropEventTimerSubscription = timer(200, 200).subscribe(() => {\n if (this.files.length > 0 && this.numOfActiveReadEntries === 0) {\n const files = this.files;\n this.files = [];\n this.onFileDrop.emit(files);\n }\n });\n }\n traverseFileTree(item, path) {\n if (item.isFile) {\n const toUpload = new NgxFileDropEntry(path, item);\n this.files.push(toUpload);\n } else {\n path = path + '/';\n const dirReader = item.createReader();\n let entries = [];\n const readEntries = () => {\n this.numOfActiveReadEntries++;\n dirReader.readEntries(result => {\n if (!result.length) {\n // add empty folders\n if (entries.length === 0) {\n const toUpload = new NgxFileDropEntry(path, item);\n this.zone.run(() => {\n this.addToQueue(toUpload);\n });\n } else {\n for (let i = 0; i < entries.length; i++) {\n this.zone.run(() => {\n this.traverseFileTree(entries[i], path + entries[i].name);\n });\n }\n }\n } else {\n // continue with the reading\n entries = entries.concat(result);\n readEntries();\n }\n this.numOfActiveReadEntries--;\n });\n };\n readEntries();\n }\n }\n /**\r\n * Clears any added files from the file input element so the same file can subsequently be added multiple times.\r\n */\n resetFileInput() {\n if (this.fileSelector && this.fileSelector.nativeElement) {\n const fileInputEl = this.fileSelector.nativeElement;\n const fileInputContainerEl = fileInputEl.parentElement;\n const helperFormEl = this.getHelperFormElement();\n const fileInputPlaceholderEl = this.getFileInputPlaceholderElement();\n // Just a quick check so we do not mess up the DOM (will never happen though).\n if (fileInputContainerEl !== helperFormEl) {\n // Insert the form input placeholder in the DOM before the form input element.\n this.renderer.insertBefore(fileInputContainerEl, fileInputPlaceholderEl, fileInputEl);\n // Add the form input as child of the temporary form element, removing the form input from the DOM.\n this.renderer.appendChild(helperFormEl, fileInputEl);\n // Reset the form, thus clearing the input element of any files.\n helperFormEl.reset();\n // Add the file input back to the DOM in place of the file input placeholder element.\n this.renderer.insertBefore(fileInputContainerEl, fileInputEl, fileInputPlaceholderEl);\n // Remove the input placeholder from the DOM\n this.renderer.removeChild(fileInputContainerEl, fileInputPlaceholderEl);\n }\n }\n }\n /**\r\n * Get a cached HTML form element as a helper element to clear the file input element.\r\n */\n getHelperFormElement() {\n if (!this.helperFormEl) {\n this.helperFormEl = this.renderer.createElement('form');\n }\n return this.helperFormEl;\n }\n /**\r\n * Get a cached HTML div element to be used as placeholder for the file input element when clearing said element.\r\n */\n getFileInputPlaceholderElement() {\n if (!this.fileInputPlaceholderEl) {\n this.fileInputPlaceholderEl = this.renderer.createElement('div');\n }\n return this.fileInputPlaceholderEl;\n }\n isDropzoneDisabled() {\n return this.globalDraggingInProgress || this.disabled;\n }\n addToQueue(item) {\n this.files.push(item);\n }\n preventAndStop(event) {\n event.stopPropagation();\n event.preventDefault();\n }\n static {\n this.ɵfac = function NgxFileDropComponent_Factory(t) {\n return new (t || NgxFileDropComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxFileDropComponent,\n selectors: [[\"ngx-file-drop\"]],\n contentQueries: function NgxFileDropComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgxFileDropContentTemplateDirective, 5, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n }\n },\n viewQuery: function NgxFileDropComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileSelector = _t.first);\n }\n },\n inputs: {\n accept: \"accept\",\n directory: \"directory\",\n multiple: \"multiple\",\n dropZoneLabel: \"dropZoneLabel\",\n dropZoneClassName: \"dropZoneClassName\",\n useDragEnter: \"useDragEnter\",\n contentClassName: \"contentClassName\",\n showBrowseBtn: \"showBrowseBtn\",\n browseBtnClassName: \"browseBtnClassName\",\n browseBtnLabel: \"browseBtnLabel\",\n disabled: \"disabled\"\n },\n outputs: {\n onFileDrop: \"onFileDrop\",\n onFileOver: \"onFileOver\",\n onFileLeave: \"onFileLeave\"\n },\n decls: 7,\n vars: 15,\n consts: [[\"fileSelector\", \"\"], [\"defaultContentTemplate\", \"\"], [3, \"drop\", \"dragover\", \"dragenter\", \"dragleave\", \"className\"], [3, \"className\"], [\"type\", \"file\", 1, \"ngx-file-drop__file-input\", 3, \"change\", \"accept\", \"multiple\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"ngx-file-drop__drop-zone-label\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"ngx-file-drop__drop-zone-label\"], [\"type\", \"button\", 3, \"click\", \"className\", \"value\"]],\n template: function NgxFileDropComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵlistener(\"drop\", function NgxFileDropComponent_Template_div_drop_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.dropFiles($event));\n })(\"dragover\", function NgxFileDropComponent_Template_div_dragover_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onDragOver($event));\n })(\"dragenter\", function NgxFileDropComponent_Template_div_dragenter_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onDragEnter($event));\n })(\"dragleave\", function NgxFileDropComponent_Template_div_dragleave_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onDragLeave($event));\n });\n i0.ɵɵelementStart(1, \"div\", 3)(2, \"input\", 4, 0);\n i0.ɵɵlistener(\"change\", function NgxFileDropComponent_Template_input_change_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.uploadFiles($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, NgxFileDropComponent_ng_template_4_Template, 2, 2, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(6, NgxFileDropComponent_ng_template_6_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const defaultContentTemplate_r4 = i0.ɵɵreference(5);\n i0.ɵɵclassProp(\"ngx-file-drop__drop-zone--over\", ctx.isDraggingOverDropZone);\n i0.ɵɵproperty(\"className\", ctx.dropZoneClassName);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"className\", ctx.contentClassName);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"accept\", ctx.accept)(\"multiple\", ctx.multiple);\n i0.ɵɵattribute(\"directory\", ctx.directory || undefined)(\"webkitdirectory\", ctx.directory || undefined)(\"mozdirectory\", ctx.directory || undefined)(\"msdirectory\", ctx.directory || undefined)(\"odirectory\", ctx.directory || undefined);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.contentTemplate || defaultContentTemplate_r4)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(13, _c1, ctx.openFileSelector));\n }\n },\n dependencies: [i1.NgIf, i1.NgTemplateOutlet],\n styles: [\".ngx-file-drop__drop-zone[_ngcontent-%COMP%]{height:100px;margin:auto;border:2px dotted #0782d0;border-radius:30px}.ngx-file-drop__drop-zone--over[_ngcontent-%COMP%]{background-color:#93939380}.ngx-file-drop__content[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:100px;color:#0782d0}.ngx-file-drop__drop-zone-label[_ngcontent-%COMP%]{text-align:center}.ngx-file-drop__file-input[_ngcontent-%COMP%]{display:none}\"]\n });\n }\n }\n return NgxFileDropComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxFileDropModule = /*#__PURE__*/(() => {\n class NgxFileDropModule {\n static {\n this.ɵfac = function NgxFileDropModule_Factory(t) {\n return new (t || NgxFileDropModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxFileDropModule,\n bootstrap: [NgxFileDropComponent]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return NgxFileDropModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { NgxFileDropComponent, NgxFileDropContentTemplateDirective, NgxFileDropEntry, NgxFileDropModule };\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { TextResonse } from '../_types/text-response';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n private baseUrl = environment.apiUrl;\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 * @returns \n */\n updateSeriesCoverImage(seriesId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/series', {id: seriesId, url: this._cleanBase64Url(url)});\n }\n\n updateCollectionCoverImage(tagId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/collection', {id: tagId, url: this._cleanBase64Url(url)});\n }\n\n updateReadingListCoverImage(readingListId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/reading-list', {id: readingListId, url: this._cleanBase64Url(url)});\n }\n\n updateChapterCoverImage(chapterId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/chapter', {id: chapterId, url: this._cleanBase64Url(url)});\n }\n\n updateLibraryCoverImage(libraryId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/library', {id: libraryId, url: this._cleanBase64Url(url)});\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 {CommonModule, DOCUMENT} from '@angular/common';\nimport {ImageComponent} from \"../../shared/image/image.component\";\nimport {translate, TranslocoModule} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-cover-image-chooser',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n NgxFileDropModule,\n CommonModule,\n ImageComponent,\n TranslocoModule\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
\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 0\">\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 \"@ngneat/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 { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgbActiveModal, NgbTypeahead, NgbHighlight } from '@ng-bootstrap/ng-bootstrap';\nimport { catchError, debounceTime, distinctUntilChanged, filter, map, merge, Observable, of, OperatorFunction, Subject, switchMap, tap } from 'rxjs';\nimport { Stack } from 'src/app/shared/data-structures/stack';\nimport { DirectoryDto } from 'src/app/_models/system/directory-dto';\nimport { LibraryService } from '../../../_services/library.service';\nimport { NgIf, NgFor, NgClass } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\nimport {WikiLink} from \"../../../_models/wiki\";\n\n\nexport interface DirectoryPickerResult {\n success: boolean;\n folderPath: string;\n}\n\n@Component({\n selector: 'app-directory-picker',\n templateUrl: './directory-picker.component.html',\n styleUrls: ['./directory-picker.component.scss'],\n standalone: true,\n imports: [ReactiveFormsModule, NgbTypeahead, FormsModule, NgbHighlight, NgIf, NgFor, NgClass, TranslocoDirective]\n})\nexport class DirectoryPickerComponent implements OnInit {\n\n @Input() startingFolder: string = '';\n /**\n * Url to give more information about selecting directories. Passing nothing will suppress.\n */\n @Input() helpUrl: string = WikiLink.Library;\n\n currentRoot = '';\n folders: DirectoryDto[] = [];\n routeStack: Stack = new Stack();\n\n\n path: string = '';\n @ViewChild('instance', {static: false}) instance!: NgbTypeahead;\n focus$ = new Subject();\n click$ = new Subject();\n searching: boolean = false;\n searchFailed: boolean = false;\n\n\n search: OperatorFunction = (text$: Observable) => {\n const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());\n const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));\n const inputFocus$ = this.focus$;\n\n return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$, text$).pipe(\n debounceTime(300),\n distinctUntilChanged(),\n tap(() => this.searching = true),\n switchMap(term =>\n this.libraryService.listDirectories(this.path).pipe(\n tap(() => this.searchFailed = false),\n tap((folders) => this.folders = folders),\n map(folders => folders.map(f => f.fullPath)),\n catchError(() => {\n this.searchFailed = true;\n return of([]);\n }))\n ),\n tap(() => this.searching = false)\n )\n }\n\n constructor(public modal: NgbActiveModal, private libraryService: LibraryService) {\n\n }\n\n ngOnInit(): void {\n if (this.startingFolder && this.startingFolder.length > 0) {\n let folders = this.startingFolder.split('/');\n let folders2 = this.startingFolder.split('\\\\');\n if (folders.length === 1 && folders2.length > 1) {\n folders = folders2;\n }\n if (!folders[0].endsWith('/')) {\n folders[0] = folders[0] + '/';\n }\n folders.forEach(folder => this.routeStack.push(folder));\n\n const fullPath = this.routeStack.items.join('/');\n this.loadChildren(fullPath);\n } else {\n this.loadChildren(this.currentRoot);\n }\n }\n\n updateTable() {\n this.loadChildren(this.path);\n }\n\n\n selectNode(folder: DirectoryDto) {\n if (folder.disabled) return;\n this.currentRoot = folder.name;\n this.routeStack.push(folder.name);\n this.path = folder.fullPath;\n this.loadChildren(this.path);\n }\n\n goBack() {\n this.routeStack.pop();\n const stackPeek = this.routeStack.peek();\n if (stackPeek !== undefined) {\n this.currentRoot = stackPeek;\n const fullPath = this.routeStack.items.join('/');\n this.loadChildren(fullPath);\n } else {\n this.currentRoot = '';\n this.loadChildren(this.currentRoot);\n }\n }\n\n loadChildren(path: string) {\n this.libraryService.listDirectories(path).subscribe(folders => {\n this.folders = folders;\n }, err => {\n // If there was an error, pop off last directory added to stack\n this.routeStack.pop();\n const item = this.folders.find(f => f.fullPath === path);\n if (item) {\n item.disabled = true;\n }\n });\n }\n\n share() {\n this.modal.close({success: true, folderPath: this.path});\n }\n\n close() {\n this.modal.close({success: false, folderPath: undefined});\n }\n\n navigateTo(index: number) {\n while(this.routeStack.items.length - 1 > index) {\n this.routeStack.pop();\n }\n\n const fullPath = this.routeStack.items.join('/');\n this.path = fullPath;\n this.loadChildren(fullPath);\n }\n}\n\n\n","\n
\n

{{t('title')}}

\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
{{t('type-header')}}{{t('name-header')}}
...
\n {{folder.name}}\n
\n
\n \n\n
\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {TranslocoService} from \"@ngneat/transloco\";\n\n@Pipe({\n name: 'defaultDate',\n pure: true,\n standalone: true\n})\nexport class DefaultDatePipe implements PipeTransform {\n\n constructor(private translocoService: TranslocoService) {\n }\n transform(value: any, replacementString = 'default-date-pipe.never'): string {\n if (value === null || value === undefined || value === '' || value === Infinity || Number.isNaN(value) || value === '1/1/01') {\n return this.translocoService.translate(replacementString);\n };\n return value;\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 \"@ngneat/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 \"@ngneat/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\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) {\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 DestroyRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport {FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n NgbAccordionBody,\n NgbAccordionButton, NgbAccordionCollapse,\n NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem,\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 \"@ngneat/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\";\n\nenum TabID {\n General = 'general-tab',\n Folder = 'folder-tab',\n Cover = 'cover-tab',\n Advanced = 'advanced-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, NgbAccordionDirective, NgbAccordionItem, NgbAccordionHeader, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionBody, EditListComponent],\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 LibraryType = LibraryType;\n protected readonly Breakpoint = Breakpoint;\n protected readonly TabID = TabID;\n protected readonly WikiLink = WikiLink;\n\n public readonly utilityService = inject(UtilityService);\n public 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\n @Input({required: true}) library!: Library | undefined;\n\n active = TabID.General;\n imageUrls: Array = [];\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 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 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.Comic || this.library.type === LibraryType.Book)) {\n this.libraryForm.get('allowScrobbling')?.setValue(false);\n this.libraryForm.get('allowScrobbling')?.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.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.library.allowScrobbling);\n this.selectedFolders = this.library.folders;\n this.madeChanges = false;\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, '').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","\n
\n

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

\n \n
\n
\n
\n
    \n\n
  • \n {{t(TabID.General)}}\n \n
    \n \n \n
    \n
    \n {{t('required-field')}}\n
    \n
    \n {{t('library-name-unique')}}\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
    • \n {{folder}}\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

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

    \n

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

    \n \n
    \n
  • \n\n
  • \n {{t(TabID.Advanced)}}\n \n
    \n
    \n
    \n
    {{t('file-type-group-label')}}
    \n

    \n {{t('file-type-group-tooltip')}}\n

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

    \n \n

    \n
    \n
    \n \n {{t('exclude-patterns-tooltip')}}{{t('help')}}\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 {{t('manage-collection-tooltip')}}\n

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

    \n {{t('manage-reading-list-tooltip')}}\n

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

    \n {{t('allow-scrobbling-tooltip')}}\n

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

    \n {{t('folder-watching-tooltip')}}\n

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

    \n {{t('include-in-dashboard-tooltip')}}\n

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

    \n {{t('include-in-recommendation-tooltip')}}\n

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

    \n {{t('include-in-search-tooltip')}}\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","import { Injectable, OnDestroy } from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { Subject } from 'rxjs';\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, TranslocoService} from \"@ngneat/transloco\";\nimport {UserCollection} from \"../_models/collection-tag\";\nimport {CollectionTagService} from \"./collection-tag.service\";\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 implements OnDestroy {\n\n private readonly onDestroy = new Subject();\n private readingListModalRef: NgbModalRef | null = null;\n private collectionModalRef: NgbModalRef | null = null;\n\n constructor(private libraryService: LibraryService, private seriesService: SeriesService,\n private readerService: ReaderService, private toastr: ToastrService, private modalService: NgbModal,\n private confirmService: ConfirmService, private memberService: MemberService, private deviceService: DeviceService,\n private readonly collectionTagService: CollectionTagService) { }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\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 * @returns\n */\n async refreshMetadata(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n if (!await this.confirmService.confirm(translate('toasts.confirm-regen-covers'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n\n const forceUpdate = true; //await this.promptIfForce();\n\n this.libraryService.refreshMetadata(library?.id, forceUpdate).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 editLibrary(library: Partial, callback?: LibraryActionCallback) {\n const modalRef = this.modalService.open(LibrarySettingsModalComponent, {size: 'xl', fullscreen: 'md'});\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 */\n async refreshMetdata(series: Series, callback?: SeriesActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-regen-covers'))) {\n if (callback) {\n callback(series);\n }\n return;\n }\n\n this.seriesService.refreshMetadata(series).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.refresh-covers-queued', {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 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 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? 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 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 series as Unread.\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 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 = '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 = '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 = '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 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}\n","export enum RelationKind {\n Prequel = 1,\n Sequel = 2,\n SpinOff = 3,\n Adaptation = 4,\n SideStory = 5,\n Character = 6,\n Contains = 7,\n Other = 8,\n AlternativeSetting = 9,\n AlternativeVersion = 10,\n Doujinshi = 11,\n /**\n * This is UI only. Backend will generate Parent series for everything but Prequel/Sequel\n */\n Parent = 12,\n Edition = 13,\n Annual = 14\n}\n\nconst RelationKindsUnsorted = [\n {text: 'Prequel', value: RelationKind.Prequel},\n {text: 'Sequel', value: RelationKind.Sequel},\n {text: 'Spin Off', value: RelationKind.SpinOff},\n {text: 'Adaptation', value: RelationKind.Adaptation},\n {text: 'Annual', value: RelationKind.Annual},\n {text: 'Alternative Setting', value: RelationKind.AlternativeSetting},\n {text: 'Alternative Version', value: RelationKind.AlternativeVersion},\n {text: 'Side Story', value: RelationKind.SideStory},\n {text: 'Character', value: RelationKind.Character},\n {text: 'Contains', value: RelationKind.Contains},\n {text: 'Edition', value: RelationKind.Edition},\n {text: 'Doujinshi', value: RelationKind.Doujinshi},\n {text: 'Other', value: RelationKind.Other},\n];\n\nexport const RelationKinds = RelationKindsUnsorted.slice().sort((a, b) => a.text.localeCompare(b.text));\n","import { Observable } from 'rxjs';\nimport { FormControl } from '@angular/forms';\n\nexport type SelectionCompareFn = (a: T, b: T) => boolean;\n\nexport class TypeaheadSettings {\n /**\n * How many ms between typing actions before pipeline to load data is triggered\n */\n debounce: number = 200;\n /**\n * Multiple options can be selected from dropdown. Will be rendered as tag badges.\n */\n multiple: boolean = false;\n /**\n * Id of the input element, for linking label elements (accessibility)\n */\n id: string = '';\n /**\n * Show a locked icon next to input and provide functionality around locking/unlocking a field\n */\n showLocked: boolean = false;\n /**\n * Data to preload the typeahead with on first load\n */\n /**\n * Data to preload the typeahead with on first load\n */\n savedData!: T[] | T;\n /**\n * Function to compare the elements. Should return all elements that fit the matching criteria. \n * This is only used with non-Observable based fetchFn, but must be defined for all uses of typeahead.\n */\n compareFn!: ((optionList: T[], filter: string) => T[]);\n /**\n * Must be defined when addIfNonExisting is true. Used to ensure no duplicates exist when adding.\n */\n compareFnForAdd!: ((optionList: T[], filter: string) => T[]);\n /**\n * Function which is used for comparing objects when keeping track of state. \n * Useful over shallow equal when you have image urls that have random numbers on them.\n */ \n selectionCompareFn?: SelectionCompareFn;\n /**\n * Function to fetch the data from the server. If data is mainatined in memory, wrap in an observable.\n */\n fetchFn!: (filter: string) => Observable;\n /**\n * Minimum number of characters needed to type to trigger the fetch pipeline\n */\n minCharacters: number = 1;\n /**\n * Optional form Control to tie model to. \n */\n formControl?: FormControl;\n /**\n * If true, typeahead will remove already selected items from fetchFn results. Only appies when multiple=true\n */\n unique: boolean = true;\n /**\n * If true, will fire an event for newItemAdded and will prompt the user to add form model to the list of selected items\n */\n addIfNonExisting: boolean = false;\n /**\n * Required for addIfNonExisting to transform the text from model into the item\n */\n addTransformFn!: (text: string) => T;\n /**\n * An optional, but recommended trackby identity function to help Angular render the list better\n */\n trackByIdentityFn!: (index: number, value: T) => T;\n}","import { Chapter } from \"../chapter\";\nimport { Library } from \"../library/library\";\nimport { MangaFile } from \"../manga-file\";\nimport { SearchResult } from \"./search-result\";\nimport { Tag } from \"../tag\";\nimport {BookmarkSearchResult} from \"./bookmark-search-result\";\n\nexport class SearchResultGroup {\n libraries: Array = [];\n series: Array = [];\n collections: Array = [];\n readingLists: Array = [];\n persons: Array = [];\n genres: Array = [];\n tags: Array = [];\n files: Array = [];\n chapters: Array = [];\n bookmarks: Array = [];\n\n reset() {\n this.libraries = [];\n this.series = [];\n this.collections = [];\n this.readingLists = [];\n this.persons = [];\n this.genres = [];\n this.tags = [];\n this.files = [];\n this.chapters = [];\n this.bookmarks = [];\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { of } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { SearchResultGroup } from '../_models/search/search-result-group';\nimport { Series } from '../_models/series';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient) { }\n\n search(term: string) {\n if (term === '') {\n return of(new SearchResultGroup());\n }\n return this.httpClient.get(this.baseUrl + 'search/search?queryString=' + encodeURIComponent(term));\n }\n\n getSeriesForMangaFile(mangaFileId: number) {\n return this.httpClient.get(this.baseUrl + 'search/series-for-mangafile?mangaFileId=' + mangaFileId);\n }\n\n getSeriesForChapter(chapterId: number) {\n return this.httpClient.get(this.baseUrl + 'search/series-for-chapter?chapterId=' + chapterId);\n }\n}\n","import {inject, Pipe, PipeTransform} from '@angular/core';\nimport { RelationKind } from '../_models/series-detail/relation-kind';\nimport {TranslocoService} from \"@ngneat/transloco\";\n\n@Pipe({\n name: 'relationship',\n standalone: true\n})\nexport class RelationshipPipe implements PipeTransform {\n\n translocoService = inject(TranslocoService);\n\n transform(relationship: RelationKind | undefined): string {\n if (relationship === undefined) return '';\n switch (relationship) {\n case RelationKind.Adaptation:\n return this.translocoService.translate('relationship-pipe.adaptation');\n case RelationKind.AlternativeSetting:\n return this.translocoService.translate('relationship-pipe.alternative-setting');\n case RelationKind.AlternativeVersion:\n return this.translocoService.translate('relationship-pipe.alternative-version');\n case RelationKind.Character:\n return this.translocoService.translate('relationship-pipe.character');\n case RelationKind.Contains:\n return this.translocoService.translate('relationship-pipe.contains');\n case RelationKind.Doujinshi:\n return this.translocoService.translate('relationship-pipe.doujinshi');\n case RelationKind.Other:\n return this.translocoService.translate('relationship-pipe.other');\n case RelationKind.Prequel:\n return this.translocoService.translate('relationship-pipe.prequel');\n case RelationKind.Sequel:\n return this.translocoService.translate('relationship-pipe.sequel');\n case RelationKind.SideStory:\n return this.translocoService.translate('relationship-pipe.side-story');\n case RelationKind.SpinOff:\n return this.translocoService.translate('relationship-pipe.spin-off');\n case RelationKind.Parent:\n return this.translocoService.translate('relationship-pipe.parent');\n case RelationKind.Edition:\n return this.translocoService.translate('relationship-pipe.edition');\n case RelationKind.Annual:\n return this.translocoService.translate('relationship-pipe.annual');\n default:\n return '';\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 {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport { map, Observable, of, firstValueFrom, ReplaySubject } from 'rxjs';\nimport { UtilityService } from 'src/app/shared/_services/utility.service';\nimport { TypeaheadSettings } from 'src/app/typeahead/_models/typeahead-settings';\nimport { SearchResult } from 'src/app/_models/search/search-result';\nimport { Series } from 'src/app/_models/series';\nimport { RelationKind, RelationKinds } from 'src/app/_models/series-detail/relation-kind';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { LibraryService } from 'src/app/_services/library.service';\nimport { SearchService } from 'src/app/_services/search.service';\nimport { SeriesService } from 'src/app/_services/series.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {TypeaheadComponent} from \"../../typeahead/_components/typeahead.component\";\nimport {CommonModule} from \"@angular/common\";\nimport {TranslocoModule} from \"@ngneat/transloco\";\nimport {RelationshipPipe} from \"../../_pipes/relationship.pipe\";\nimport {WikiLink} from \"../../_models/wiki\";\n\ninterface RelationControl {\n series: {id: number, name: string} | undefined; // Will add type as well\n typeaheadSettings: TypeaheadSettings;\n formControl: FormControl;\n}\n\n@Component({\n selector: 'app-edit-series-relation',\n standalone: true,\n imports: [\n TypeaheadComponent,\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n RelationshipPipe,\n ],\n templateUrl: './edit-series-relation.component.html',\n styleUrls: ['./edit-series-relation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditSeriesRelationComponent implements OnInit {\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly seriesService = inject(SeriesService);\n private readonly utilityService = inject(UtilityService);\n private readonly libraryService = inject(LibraryService);\n private readonly searchService = inject(SearchService);\n public readonly imageService = inject(ImageService);\n protected readonly RelationKind = RelationKind;\n protected readonly WikiLink = WikiLink;\n\n @Input({required: true}) series!: Series;\n /**\n * This will tell the component to save based on its internal state\n */\n @Input() save: EventEmitter = new EventEmitter();\n\n @Output() saveApi = new ReplaySubject(1);\n\n relationOptions = RelationKinds;\n relations: Array = [];\n libraryNames: {[key:number]: string} = {};\n\n focusTypeahead = new EventEmitter();\n\n ngOnInit(): void {\n this.seriesService.getRelatedForSeries(this.series.id).subscribe( relations => {\n this.setupRelationRows(relations.prequels, RelationKind.Prequel);\n this.setupRelationRows(relations.sequels, RelationKind.Sequel);\n this.setupRelationRows(relations.sideStories, RelationKind.SideStory);\n this.setupRelationRows(relations.spinOffs, RelationKind.SpinOff);\n this.setupRelationRows(relations.adaptations, RelationKind.Adaptation);\n this.setupRelationRows(relations.others, RelationKind.Other);\n this.setupRelationRows(relations.characters, RelationKind.Character);\n this.setupRelationRows(relations.alternativeSettings, RelationKind.AlternativeSetting);\n this.setupRelationRows(relations.alternativeVersions, RelationKind.AlternativeVersion);\n this.setupRelationRows(relations.doujinshis, RelationKind.Doujinshi);\n this.setupRelationRows(relations.contains, RelationKind.Contains);\n this.setupRelationRows(relations.parent, RelationKind.Parent);\n this.setupRelationRows(relations.editions, RelationKind.Edition);\n this.setupRelationRows(relations.annuals, RelationKind.Annual);\n this.cdRef.detectChanges();\n });\n\n this.libraryService.getLibraryNames().subscribe(names => {\n this.libraryNames = names;\n this.cdRef.markForCheck();\n });\n\n this.save.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.saveState());\n }\n\n setupRelationRows(relations: Array, kind: RelationKind) {\n relations.map(async (item, indx) => {\n const settings = await firstValueFrom(this.createSeriesTypeahead(item, kind, indx));\n const form = new FormControl(kind, []);\n if (kind === RelationKind.Parent) {\n form.disable();\n }\n return {series: item, typeaheadSettings: settings, formControl: form};\n }).forEach(async p => {\n this.relations.push(await p);\n this.cdRef.markForCheck();\n });\n }\n\n async addNewRelation() {\n this.relations.push({series: undefined, formControl: new FormControl(RelationKind.Adaptation, []), typeaheadSettings: await firstValueFrom(this.createSeriesTypeahead(undefined, RelationKind.Adaptation, this.relations.length))});\n this.cdRef.markForCheck();\n\n // Focus on the new typeahead\n setTimeout(() => {\n this.focusTypeahead.emit(`relation--${this.relations.length - 1}`);\n }, 10);\n }\n\n removeRelation(index: number) {\n this.relations.splice(index, 1);\n this.cdRef.markForCheck();\n }\n\n\n updateSeries(event: Array, relation: RelationControl) {\n if (event[0] === undefined) {\n relation.series = undefined;\n this.cdRef.markForCheck();\n return;\n }\n relation.series = {id: event[0].seriesId, name: event[0].name};\n this.cdRef.markForCheck();\n }\n\n createSeriesTypeahead(series: Series | undefined, relationship: RelationKind, index: number): Observable> {\n const seriesSettings = new TypeaheadSettings();\n seriesSettings.minCharacters = 0;\n seriesSettings.multiple = false;\n seriesSettings.id = 'relation--' + index;\n seriesSettings.unique = true;\n seriesSettings.addIfNonExisting = false;\n seriesSettings.fetchFn = (searchFilter: string) => this.searchService.search(searchFilter).pipe(\n map(group => group.series),\n map(items => seriesSettings.compareFn(items, searchFilter)),\n map(series => series.filter(s => s.seriesId !== this.series.id)),\n );\n\n seriesSettings.compareFn = (options: SearchResult[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.name, filter));\n }\n\n seriesSettings.selectionCompareFn = (a: SearchResult, b: SearchResult) => {\n return a.seriesId == b.seriesId;\n }\n\n if (series !== undefined) {\n return this.searchService.search(series.name).pipe(\n map(group => group.series), map(results => {\n seriesSettings.savedData = results.filter(s => s.seriesId === series.id);\n return seriesSettings;\n }));\n }\n\n return of(seriesSettings);\n }\n\n saveState() {\n const adaptations = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Adaptation && item.series !== undefined).map(item => item.series!.id);\n const characters = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Character && item.series !== undefined).map(item => item.series!.id);\n const contains = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Contains && item.series !== undefined).map(item => item.series!.id);\n const others = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Other && item.series !== undefined).map(item => item.series!.id);\n const prequels = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Prequel && item.series !== undefined).map(item => item.series!.id);\n const sequels = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Sequel && item.series !== undefined).map(item => item.series!.id);\n const sideStories = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.SideStory && item.series !== undefined).map(item => item.series!.id);\n const spinOffs = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.SpinOff && item.series !== undefined).map(item => item.series!.id);\n const alternativeSettings = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.AlternativeSetting && item.series !== undefined).map(item => item.series!.id);\n const alternativeVersions = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.AlternativeVersion && item.series !== undefined).map(item => item.series!.id);\n const doujinshis = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Doujinshi && item.series !== undefined).map(item => item.series!.id);\n const editions = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Edition && item.series !== undefined).map(item => item.series!.id);\n const annuals = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Annual && item.series !== undefined).map(item => item.series!.id);\n\n // NOTE: We can actually emit this onto an observable and in main parent, use mergeMap into the forkJoin\n this.seriesService.updateRelationships(this.series.id, adaptations, characters, contains, others, prequels, sequels, sideStories, spinOffs, alternativeSettings, alternativeVersions, doujinshis, editions, annuals).subscribe(() => {});\n\n }\n}\n","\n
\n\n

\n {{t('description-part-1')}} {{t('description-part-2')}}\n

\n\n
0\">\n \n \n
\n\n
\n
\n
\n \n \n {{item.name}} ({{libraryNames[item.libraryId]}})\n \n \n {{item.name}} ({{libraryNames[item.libraryId]}})\n \n \n
\n
\n \n
\n \n
\n
\n\n
\n \n
\n
\n\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n EventEmitter,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n NgbActiveModal, NgbCollapse,\n NgbNav,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n NgbNavOutlet,\n NgbTooltip\n} from '@ng-bootstrap/ng-bootstrap';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\nimport { TypeaheadSettings } from 'src/app/typeahead/_models/typeahead-settings';\nimport {Chapter, LooseLeafOrDefaultNumber, SpecialVolumeNumber} from 'src/app/_models/chapter';\nimport { Genre } from 'src/app/_models/metadata/genre';\nimport { AgeRatingDto } from 'src/app/_models/metadata/age-rating-dto';\nimport { Language } from 'src/app/_models/metadata/language';\nimport { PublicationStatusDto } from 'src/app/_models/metadata/publication-status-dto';\nimport { Person, PersonRole } from 'src/app/_models/metadata/person';\nimport { Series } from 'src/app/_models/series';\nimport { SeriesMetadata } from 'src/app/_models/metadata/series-metadata';\nimport { Tag } from 'src/app/_models/tag';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { LibraryService } from 'src/app/_services/library.service';\nimport { MetadataService } from 'src/app/_services/metadata.service';\nimport { SeriesService } from 'src/app/_services/series.service';\nimport { UploadService } from 'src/app/_services/upload.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {CommonModule} from \"@angular/common\";\nimport {TypeaheadComponent} from \"../../../typeahead/_components/typeahead.component\";\nimport {CoverImageChooserComponent} from \"../../cover-image-chooser/cover-image-chooser.component\";\nimport {EditSeriesRelationComponent} from \"../../edit-series-relation/edit-series-relation.component\";\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\nimport {MangaFormatPipe} from \"../../../_pipes/manga-format.pipe\";\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\nimport {TimeAgoPipe} from \"../../../_pipes/time-ago.pipe\";\nimport {TagBadgeComponent} from \"../../../shared/tag-badge/tag-badge.component\";\nimport {PublicationStatusPipe} from \"../../../_pipes/publication-status.pipe\";\nimport {BytesPipe} from \"../../../_pipes/bytes.pipe\";\nimport {ImageComponent} from \"../../../shared/image/image.component\";\nimport {DefaultValuePipe} from \"../../../_pipes/default-value.pipe\";\nimport {translate, TranslocoModule} from \"@ngneat/transloco\";\nimport {TranslocoDatePipe} from \"@ngneat/transloco-locale\";\nimport {UtcToLocalTimePipe} from \"../../../_pipes/utc-to-local-time.pipe\";\nimport {EditListComponent} from \"../../../shared/edit-list/edit-list.component\";\nimport {AccountService} from \"../../../_services/account.service\";\nimport {LibraryType} from \"../../../_models/library/library\";\nimport {ToastrService} from \"ngx-toastr\";\nimport {Volume} from \"../../../_models/volume\";\n\nenum TabID {\n General = 0,\n Metadata = 1,\n People = 2,\n WebLinks = 3,\n CoverImage = 4,\n Related = 5,\n Info = 6,\n}\n\nexport interface EditSeriesModalCloseResult {\n success: boolean;\n series: Series;\n coverImageUpdate: boolean;\n updateExternal: boolean\n}\n\n@Component({\n selector: 'app-edit-series-modal',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n NgbNav,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n CommonModule,\n TypeaheadComponent,\n CoverImageChooserComponent,\n EditSeriesRelationComponent,\n SentenceCasePipe,\n MangaFormatPipe,\n DefaultDatePipe,\n TimeAgoPipe,\n TagBadgeComponent,\n PublicationStatusPipe,\n NgbTooltip,\n BytesPipe,\n ImageComponent,\n NgbCollapse,\n NgbNavOutlet,\n DefaultValuePipe,\n TranslocoModule,\n TranslocoDatePipe,\n UtcToLocalTimePipe,\n EditListComponent,\n ],\n templateUrl: './edit-series-modal.component.html',\n styleUrls: ['./edit-series-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditSeriesModalComponent implements OnInit {\n\n public readonly modal = inject(NgbActiveModal);\n private readonly seriesService = inject(SeriesService);\n public readonly utilityService = inject(UtilityService);\n private readonly fb = inject(FormBuilder);\n public readonly imageService = inject(ImageService);\n private readonly libraryService = inject(LibraryService);\n private readonly uploadService = inject(UploadService);\n private readonly metadataService = inject(MetadataService);\n private readonly cdRef = inject(ChangeDetectorRef);\n public readonly accountService = inject(AccountService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly toastr = inject(ToastrService);\n\n protected readonly TabID = TabID;\n protected readonly PersonRole = PersonRole;\n protected readonly Breakpoint = Breakpoint;\n\n @Input({required: true}) series!: Series;\n\n\n seriesVolumes: any[] = [];\n isLoadingVolumes = false;\n /**\n * A copy of the series from init. This is used to compare values for name fields to see if lock was modified\n */\n initSeries!: Series;\n\n volumeCollapsed: any = {};\n tabs = ['general-tab', 'metadata-tab', 'people-tab', 'web-links-tab', 'cover-image-tab', 'related-tab', 'info-tab'];\n active = this.tabs[0];\n editSeriesForm!: FormGroup;\n libraryName: string | undefined = undefined;\n size: number = 0;\n hasForcedKPlus = false;\n forceIsLoading = false;\n\n\n // Typeaheads\n tagsSettings: TypeaheadSettings = new TypeaheadSettings();\n languageSettings: TypeaheadSettings = new TypeaheadSettings();\n peopleSettings: {[PersonRole: string]: TypeaheadSettings} = {};\n genreSettings: TypeaheadSettings = new TypeaheadSettings();\n\n tags: Tag[] = [];\n genres: Genre[] = [];\n ageRatings: Array = [];\n publicationStatuses: Array = [];\n validLanguages: Array = [];\n\n metadata!: SeriesMetadata;\n imageUrls: Array = [];\n /**\n * Selected Cover for uploading\n */\n selectedCover: string = '';\n coverImageReset = false;\n\n saveNestedComponents: EventEmitter = new EventEmitter();\n\n get WebLinks() {\n return this.metadata?.webLinks.split(',') || [''];\n }\n\n getPersonsSettings(role: PersonRole) {\n return this.peopleSettings[role];\n }\n\n ngOnInit(): void {\n this.imageUrls.push(this.imageService.getSeriesCoverImage(this.series.id));\n\n this.libraryService.getLibraryNames().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(names => {\n this.libraryName = names[this.series.libraryId];\n });\n\n this.initSeries = Object.assign({}, this.series);\n\n this.editSeriesForm = this.fb.group({\n id: new FormControl(this.series.id, []),\n summary: new FormControl('', []),\n name: new FormControl(this.series.name, [Validators.required]),\n localizedName: new FormControl(this.series.localizedName, []),\n sortName: new FormControl(this.series.sortName, [Validators.required]),\n rating: new FormControl(this.series.userRating, []),\n\n coverImageIndex: new FormControl(0, []),\n coverImageLocked: new FormControl(this.series.coverImageLocked, []),\n\n ageRating: new FormControl('', []),\n publicationStatus: new FormControl('', []),\n language: new FormControl('', []),\n releaseYear: new FormControl('', [Validators.minLength(4), Validators.maxLength(4), Validators.pattern(/([1-9]\\d{3})|[0]{1}/)]),\n });\n this.cdRef.markForCheck();\n\n\n this.metadataService.getAllAgeRatings().subscribe(ratings => {\n this.ageRatings = ratings;\n this.cdRef.markForCheck();\n });\n\n this.metadataService.getAllPublicationStatus().subscribe(statuses => {\n this.publicationStatuses = statuses;\n this.cdRef.markForCheck();\n });\n\n this.metadataService.getAllValidLanguages().subscribe(validLanguages => {\n this.validLanguages = validLanguages;\n this.cdRef.markForCheck();\n });\n\n this.seriesService.getMetadata(this.series.id).subscribe(metadata => {\n if (metadata) {\n this.metadata = metadata;\n\n this.setupTypeaheads();\n this.editSeriesForm.get('summary')?.patchValue(this.metadata.summary);\n this.editSeriesForm.get('ageRating')?.patchValue(this.metadata.ageRating);\n this.editSeriesForm.get('publicationStatus')?.patchValue(this.metadata.publicationStatus);\n this.editSeriesForm.get('language')?.patchValue(this.metadata.language);\n this.editSeriesForm.get('releaseYear')?.patchValue(this.metadata.releaseYear);\n\n this.cdRef.markForCheck();\n\n this.editSeriesForm.get('name')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.series.nameLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('sortName')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.series.sortNameLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('localizedName')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.series.localizedNameLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('summary')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.summaryLocked = true;\n this.metadata.summary = val;\n this.cdRef.markForCheck();\n });\n\n\n this.editSeriesForm.get('ageRating')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.ageRating = parseInt(val + '', 10);\n this.metadata.ageRatingLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('publicationStatus')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.publicationStatus = parseInt(val + '', 10);\n this.metadata.publicationStatusLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('releaseYear')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.releaseYear = parseInt(val + '', 10);\n this.metadata.releaseYearLocked = true;\n this.cdRef.markForCheck();\n });\n }\n });\n\n this.isLoadingVolumes = true;\n this.cdRef.markForCheck();\n this.seriesService.getVolumes(this.series.id).subscribe(volumes => {\n this.seriesVolumes = volumes;\n this.isLoadingVolumes = false;\n\n if (this.seriesVolumes.length === 1) {\n this.imageUrls.push(...this.seriesVolumes[0].chapters.map((c: Chapter) => this.imageService.getChapterCoverImage(c.id)));\n } else {\n this.imageUrls.push(...this.seriesVolumes.map(v => this.imageService.getVolumeCoverImage(v.id)));\n }\n\n volumes.forEach(v => {\n this.volumeCollapsed[v.name] = true;\n });\n this.seriesVolumes.forEach(vol => {\n //.sort(this.utilityService.sortChapters) (no longer needed, all data is sorted on the backend)\n vol.volumeFiles = vol.chapters?.map((c: Chapter) => c.files.map((f: any) => {\n // TODO: Identify how to fix this hack\n f.chapter = c.range;\n return f;\n })).flat();\n });\n\n if (volumes.length > 0) {\n this.size = volumes.reduce((sum1, volume) => {\n return sum1 + volume.chapters.reduce((sum2, chapter) => {\n return sum2 + chapter.files.reduce((sum3, file) => {\n return sum3 + file.bytes;\n }, 0);\n }, 0);\n }, 0);\n }\n this.cdRef.markForCheck();\n });\n }\n\n formatVolumeName(volume: Volume) {\n if (volume.minNumber === LooseLeafOrDefaultNumber) {\n return translate('edit-series-modal.loose-leaf-volume');\n } else if (volume.minNumber === SpecialVolumeNumber) {\n return translate('edit-series-modal.specials-volume');\n }\n return translate('edit-series-modal.volume-num') + ' ' + volume.name;\n }\n\n\n setupTypeaheads() {\n forkJoin([\n this.setupTagSettings(),\n this.setupGenreTypeahead(),\n this.setupPersonTypeahead(),\n this.setupLanguageTypeahead()\n ]).subscribe(results => {\n this.cdRef.markForCheck();\n });\n }\n\n setupTagSettings() {\n this.tagsSettings.minCharacters = 0;\n this.tagsSettings.multiple = true;\n this.tagsSettings.id = 'tags';\n this.tagsSettings.unique = true;\n this.tagsSettings.showLocked = true;\n this.tagsSettings.addIfNonExisting = true;\n\n\n this.tagsSettings.compareFn = (options: Tag[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.tagsSettings.fetchFn = (filter: string) => this.metadataService.getAllTags()\n .pipe(map(items => this.tagsSettings.compareFn(items, filter)));\n\n this.tagsSettings.addTransformFn = ((title: string) => {\n return {id: 0, title: title };\n });\n this.tagsSettings.selectionCompareFn = (a: Tag, b: Tag) => {\n return a.title.toLowerCase() == b.title.toLowerCase();\n }\n this.tagsSettings.compareFnForAdd = (options: Tag[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n\n if (this.metadata.tags) {\n this.tagsSettings.savedData = this.metadata.tags;\n }\n return of(true);\n }\n\n setupGenreTypeahead() {\n this.genreSettings.minCharacters = 0;\n this.genreSettings.multiple = true;\n this.genreSettings.id = 'genres';\n this.genreSettings.unique = true;\n this.genreSettings.showLocked = true;\n this.genreSettings.addIfNonExisting = true;\n this.genreSettings.fetchFn = (filter: string) => {\n return this.metadataService.getAllGenres()\n .pipe(map(items => this.genreSettings.compareFn(items, filter)));\n };\n this.genreSettings.compareFn = (options: Genre[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.genreSettings.compareFnForAdd = (options: Genre[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n this.genreSettings.selectionCompareFn = (a: Genre, b: Genre) => {\n return a.title.toLowerCase() == b.title.toLowerCase();\n }\n\n this.genreSettings.addTransformFn = ((title: string) => {\n return {id: 0, title: title };\n });\n\n if (this.metadata.genres) {\n this.genreSettings.savedData = this.metadata.genres;\n }\n return of(true);\n }\n\n updateFromPreset(id: string, presetField: Array | undefined, role: PersonRole) {\n const personSettings = this.createBlankPersonSettings(id, role)\n if (presetField && presetField.length > 0) {\n const fetch = personSettings.fetchFn as ((filter: string) => Observable);\n return fetch('').pipe(map(people => {\n const presetIds = presetField.map(p => p.id);\n personSettings.savedData = people.filter(person => presetIds.includes(person.id));\n this.peopleSettings[role] = personSettings;\n this.updatePerson(personSettings.savedData as Person[], role);\n return true;\n }));\n } else {\n this.peopleSettings[role] = personSettings;\n return of(true);\n }\n }\n\n setupLanguageTypeahead() {\n this.languageSettings.minCharacters = 0;\n this.languageSettings.multiple = false;\n this.languageSettings.id = 'language';\n this.languageSettings.unique = true;\n this.languageSettings.showLocked = true;\n this.languageSettings.addIfNonExisting = false;\n this.languageSettings.compareFn = (options: Language[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.languageSettings.compareFnForAdd = (options: Language[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n this.languageSettings.fetchFn = (filter: string) => of(this.validLanguages)\n .pipe(map(items => this.languageSettings.compareFn(items, filter)));\n\n this.languageSettings.selectionCompareFn = (a: Language, b: Language) => {\n return a.isoCode == b.isoCode;\n }\n\n const l = this.validLanguages.find(l => l.isoCode === this.metadata.language);\n if (l !== undefined) {\n this.languageSettings.savedData = l;\n }\n return of(true);\n }\n\n setupPersonTypeahead() {\n this.peopleSettings = {};\n\n return forkJoin([\n this.updateFromPreset('writer', this.metadata.writers, PersonRole.Writer),\n this.updateFromPreset('character', this.metadata.characters, PersonRole.Character),\n this.updateFromPreset('colorist', this.metadata.colorists, PersonRole.Colorist),\n this.updateFromPreset('cover-artist', this.metadata.coverArtists, PersonRole.CoverArtist),\n this.updateFromPreset('editor', this.metadata.editors, PersonRole.Editor),\n this.updateFromPreset('inker', this.metadata.inkers, PersonRole.Inker),\n this.updateFromPreset('letterer', this.metadata.letterers, PersonRole.Letterer),\n this.updateFromPreset('penciller', this.metadata.pencillers, PersonRole.Penciller),\n this.updateFromPreset('publisher', this.metadata.publishers, PersonRole.Publisher),\n this.updateFromPreset('imprint', this.metadata.imprints, PersonRole.Imprint),\n this.updateFromPreset('translator', this.metadata.translators, PersonRole.Translator),\n this.updateFromPreset('teams', this.metadata.teams, PersonRole.Team),\n this.updateFromPreset('locations', this.metadata.locations, PersonRole.Location),\n ]).pipe(map(results => {\n return of(true);\n }));\n }\n\n fetchPeople(role: PersonRole, filter: string) {\n return this.metadataService.getAllPeople().pipe(map(people => {\n return people.filter(p => p.role == role && this.utilityService.filter(p.name, filter));\n }));\n }\n\n createBlankPersonSettings(id: string, role: PersonRole) {\n var personSettings = new TypeaheadSettings();\n personSettings.minCharacters = 0;\n personSettings.multiple = true;\n personSettings.showLocked = true;\n personSettings.unique = true;\n personSettings.addIfNonExisting = true;\n personSettings.id = id;\n personSettings.compareFn = (options: Person[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.name, filter));\n }\n personSettings.compareFnForAdd = (options: Person[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.name, filter));\n }\n\n personSettings.selectionCompareFn = (a: Person, b: Person) => {\n return a.name == b.name && a.role == b.role;\n }\n personSettings.fetchFn = (filter: string) => {\n return this.fetchPeople(role, filter).pipe(map(items => personSettings.compareFn(items, filter)));\n };\n\n personSettings.addTransformFn = ((title: string) => {\n return {id: 0, name: title, role: role };\n });\n\n return personSettings;\n }\n\n close() {\n this.modal.close({success: false, series: undefined, coverImageUpdate: this.coverImageReset, updateExternal: this.hasForcedKPlus});\n }\n\n forceScan() {\n this.forceIsLoading = true;\n this.metadataService.forceRefreshFromPlus(this.series.id).subscribe(() => {\n this.hasForcedKPlus = true;\n this.forceIsLoading = false;\n this.toastr.info(translate('toasts.force-kavita+-refresh-success'));\n this.cdRef.markForCheck();\n });\n }\n\n updateWeblinks(items: Array) {\n this.metadata.webLinks = items.map(s => s.replaceAll(',', '%2C')).join(',');\n }\n\n\n save() {\n const model = this.editSeriesForm.value;\n const selectedIndex = this.editSeriesForm.get('coverImageIndex')?.value || 0;\n\n const apis = [\n this.seriesService.updateMetadata(this.metadata)\n ];\n\n // We only need to call updateSeries if we changed name, sort name, or localized name or reset a cover image\n const nameFieldsDirty = this.editSeriesForm.get('name')?.dirty || this.editSeriesForm.get('sortName')?.dirty || this.editSeriesForm.get('localizedName')?.dirty;\n const nameFieldLockChanged = this.series.nameLocked !== this.initSeries.nameLocked || this.series.sortNameLocked !== this.initSeries.sortNameLocked || this.series.localizedNameLocked !== this.initSeries.localizedNameLocked;\n if (nameFieldsDirty || nameFieldLockChanged || this.coverImageReset) {\n model.nameLocked = this.series.nameLocked;\n model.sortNameLocked = this.series.sortNameLocked;\n model.localizedNameLocked = this.series.localizedNameLocked;\n model.language = this.metadata.language;\n apis.push(this.seriesService.updateSeries(model));\n }\n\n\n if (selectedIndex > 0 && this.selectedCover !== '') {\n apis.push(this.uploadService.updateSeriesCoverImage(model.id, this.selectedCover));\n }\n\n this.saveNestedComponents.emit();\n\n forkJoin(apis).subscribe(results => {\n this.modal.close({success: true, series: model, coverImageUpdate: selectedIndex > 0 || this.coverImageReset, updateExternal: this.hasForcedKPlus});\n });\n }\n\n\n updateTags(tags: Tag[]) {\n this.tags = tags;\n this.metadata.tags = tags;\n this.cdRef.markForCheck();\n }\n\n updateGenres(genres: Genre[]) {\n this.genres = genres;\n this.metadata.genres = genres;\n this.cdRef.markForCheck();\n }\n\n updateLanguage(language: Array) {\n if (language.length === 0) {\n this.metadata.language = '';\n return;\n }\n this.metadata.language = language[0].isoCode;\n this.cdRef.markForCheck();\n }\n\n updatePerson(persons: Person[], role: PersonRole) {\n switch (role) {\n case PersonRole.Other:\n break;\n case PersonRole.Artist:\n break;\n case PersonRole.CoverArtist:\n this.metadata.coverArtists = persons;\n break;\n case PersonRole.Character:\n this.metadata.characters = persons;\n break;\n case PersonRole.Colorist:\n this.metadata.colorists = persons;\n break;\n case PersonRole.Editor:\n this.metadata.editors = persons;\n break;\n case PersonRole.Inker:\n this.metadata.inkers = persons;\n break;\n case PersonRole.Letterer:\n this.metadata.letterers = persons;\n break;\n case PersonRole.Penciller:\n this.metadata.pencillers = persons;\n break;\n case PersonRole.Publisher:\n this.metadata.publishers = persons;\n break;\n case PersonRole.Imprint:\n this.metadata.imprints = persons;\n break;\n case PersonRole.Team:\n this.metadata.teams = persons;\n break;\n case PersonRole.Location:\n this.metadata.locations = persons;\n break;\n case PersonRole.Writer:\n this.metadata.writers = persons;\n break;\n case PersonRole.Translator:\n this.metadata.translators = persons;\n break;\n\n }\n this.cdRef.markForCheck();\n }\n\n updateSelectedIndex(index: number) {\n this.editSeriesForm.patchValue({\n coverImageIndex: index\n });\n this.cdRef.markForCheck();\n }\n\n updateSelectedImage(url: string) {\n this.selectedCover = url;\n this.cdRef.markForCheck();\n }\n\n handleReset() {\n this.coverImageReset = true;\n this.editSeriesForm.patchValue({\n coverImageLocked: false\n });\n this.cdRef.markForCheck();\n }\n\n unlock(b: any, field: string) {\n if (b) {\n b[field] = !b[field];\n }\n this.cdRef.markForCheck();\n }\n\n}\n","\n
\n
\n

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

\n \n
\n
\n
\n
    \n\n
  • \n {{t(tabs[TabID.General])}}\n \n
    \n
    \n \n
    \n \n \n
    \n {{t('required-field')}}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n \n
    \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
    \n
  • \n\n
  • \n {{t(tabs[TabID.Metadata])}}\n \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}} ({{item.isoCode}})\n \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n

    \n This must be a valid year greater than 1000 and 4 characters long\n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}}\n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}}\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 {{t(tabs[TabID.People])}}\n \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
  • \n\n
  • \n {{t(tabs[TabID.WebLinks])}}\n \n

    {{t('web-link-description')}}

    \n \n
    \n
  • \n\n
  • \n {{t(tabs[TabID.CoverImage])}}\n \n

    \n {{t('cover-image-description')}}\n

    \n \n
    \n
  • \n
  • \n {{t(tabs[TabID.Related])}}\n \n \n \n
  • \n
  • \n {{t(tabs[TabID.Info])}}\n \n

    {{t('info-title')}}

    \n
    \n
    {{t('library-title')}} {{libraryName | sentenceCase}}
    \n
    {{t('format-title')}} {{series.format | mangaFormat}}
    \n
    \n
    \n
    {{t('created-title')}} {{series.created | date:'shortDate'}}
    \n
    {{t('last-read-title')}} {{series.latestReadDate | defaultDate | timeAgo}}
    \n
    {{t('last-added-title')}} {{series.lastChapterAdded | defaultDate | timeAgo}}
    \n
    {{t('last-scanned-title')}} {{series.lastFolderScanned | defaultDate | timeAgo}}
    \n
    \n\n
    \n
    {{t('folder-path-title')}} {{series.folderPath | defaultValue}}
    \n
    \n
    \n
    \n {{t('max-items-title')}} {{metadata.maxCount}}\n \n
    \n
    \n {{t('total-items-title')}} {{metadata.totalCount}}\n \n
    \n
    {{t('publication-status-title')}} {{metadata.publicationStatus | publicationStatus}}
    \n
    {{t('total-pages-title')}} {{series.pages}}
    \n
    {{t('size-title')}} {{size | bytes}}
    \n
    \n

    Volumes

    \n
    \n {{t('loading')}}\n
    \n
      \n
    • \n \n
      \n
      {{formatVolumeName(volume)}}
      \n
      \n
      \n
      \n {{t('added-title')}} {{volume.createdUtc | utcToLocalTime | defaultDate}}\n
      \n
      \n {{t('last-modified-title')}} {{volume.lastModifiedUtc | utcToLocalTime | translocoDate: {dateStyle: 'short' } | defaultDate}}\n
      \n
      \n
      \n
      \n \n
      \n
      \n {{t('pages-title')}} {{volume.pages}}\n
      \n
      \n\n
      \n
        \n
      • \n {{file.filePath}}\n
        \n
        \n {{t('chapter-title')}} {{file.chapter}}\n
        \n
        \n {{t('pages-title')}} {{file.pages}}\n
        \n
        \n {{t('format-title')}} {{utilityService.mangaFormatToText(file.format)}}\n
        \n
        \n
      • \n
      \n
      \n
      \n
      \n
    • \n
    \n
    \n
  • \n
\n
\n\n
\n
\n
\n @if (accountService.hasValidLicense$ | async) {\n \n }\n \n \n
\n
\n\n\n \n \n \n {{t('field-locked-alt')}}\n \n \n\n\n
\n"],"mappings":"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","names":["ReadingListService","constructor","httpClient","utilityService","baseUrl","environment","apiUrl","getReadingList","readingListId","get","getReadingLists","includePromoted","sortByLastModified","pageNum","itemsPerPage","params","HttpParams","addPaginationIfExists","post","observe","pipe","map","response","createPaginatedResult","PaginatedResult","getReadingListsForSeries","seriesId","getListItems","createList","title","update","model","TextResonse","updateByMultiple","volumeIds","chapterIds","updateByMultipleSeries","seriesIds","updateBySeries","updateByVolume","volumeId","updateByChapter","chapterId","delete","updatePosition","readingListItemId","fromPosition","toPosition","deleteItem","removeRead","actionListFilter","action","readingList","isAdmin","promoted","nameExists","name","validateCbl","form","importCbl","getCharacters","ɵɵinject","HttpClient","UtilityService","factory","ɵfac","providedIn","_ReadingListService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","tmp_5_0","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","listForm","get","setValue","ɵɵadvance","ɵɵtextInterpolate","t_r4","ɵɵproperty","collectionTag_r6","_r5","$implicit","addToCollection","ɵɵtemplate","BulkAddToCollectionComponent_ng_container_0_For_10_Conditional_2_Template","ɵɵtextInterpolate1","title","ɵɵconditional","promoted","ɵɵelementContainerStart","_r1","close","BulkAddToCollectionComponent_ng_container_0_Conditional_7_Template","ɵɵrepeaterCreate","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","ɵɵrepeater","ɵɵpipeBind2","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","ngAfterViewInit","inputElem","nativeElement","select","tagName","addByMultiple","success","translate","collectionName","tag","id","selectors","viewQuery","rf","ctx","BulkAddToCollectionComponent_ng_container_0_Template","CommonModule","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","FilterPipe","NgbModalModule","TranslocoDirective","styles","encapsulation","changeDetection","_BulkAddToCollectionComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","tmp_5_0","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","listForm","get","setValue","ɵɵadvance","ɵɵtextInterpolate","t_r4","ɵɵproperty","readingList_r6","_r5","$implicit","addToList","ɵɵtemplate","AddToListModalComponent_ng_container_0_li_9_i_2_Template","ɵɵtextInterpolate1","title","promoted","ɵɵelementContainerStart","_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","ɵɵpipeBind2","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","ɵɵdirectiveInject","NgbActiveModal","ReadingListService","ToastrService","selectors","viewQuery","rf","ctx","AddToListModalComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgIf","NgFor","FilterPipe","TranslocoDirective","styles","_AddToListModalComponent","_c0","_c1","a0","NgxFileDropComponent_ng_template_4_div_0_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r1","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","NgxFileDropComponent_ng_template_4_div_1_Template","_r3","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","ɵɵpropertyInterpolate","ɵɵproperty","NgxFileDropComponent_ng_template_4_Template","ɵɵtemplate","NgxFileDropComponent_ng_template_6_Template","NgxFileDropEntry","relativePath","fileEntry","NgxFileDropContentTemplateDirective","_NgxFileDropContentTemplateDirective","template","ɵɵdirectiveInject","TemplateRef","ɵɵdefineDirective","NgxFileDropComponent","_NgxFileDropComponent","value","zone","renderer","EventEmitter","event","evt","items","file","fakeFileEntry","callback","item","entry","toUpload","i","timer","files","path","dirReader","entries","readEntries","result","fileInputEl","fileInputContainerEl","helperFormEl","fileInputPlaceholderEl","NgZone","Renderer2","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","_r1","ɵɵtemplateRefExtractor","defaultContentTemplate_r4","ɵɵreference","ɵɵclassProp","ɵɵattribute","ɵɵpureFunction1","NgIf","NgTemplateOutlet","NgxFileDropModule","_NgxFileDropModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","UploadService","constructor","httpClient","baseUrl","environment","apiUrl","uploadByUrl","url","post","TextResonse","updateSeriesCoverImage","seriesId","id","_cleanBase64Url","updateCollectionCoverImage","tagId","updateReadingListCoverImage","readingListId","updateChapterCoverImage","chapterId","updateLibraryCoverImage","libraryId","resetChapterCoverLock","startsWith","split","ɵɵinject","HttpClient","factory","ɵfac","providedIn","_UploadService","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","changeMode","ɵɵtext","openFileSelector_r4","openFileSelector","ɵɵadvance","ɵɵtextInterpolate","t_r5","ɵɵpureFunction0","_c0","ɵɵtextInterpolate1","ɵɵelementContainerStart","_r6","loadImageFromUrl","mode","ɵɵproperty","tmp_6_0","form","get","value","length","ɵɵtemplate","CoverImageChooserComponent_ng_container_0_ng_template_4_div_0_Template","CoverImageChooserComponent_ng_container_0_ng_template_4_ng_container_1_Template","_r8","resetImage","_r7","reset","CoverImageChooserComponent_ng_container_0_div_7_ng_container_2_Template","ɵɵpureFunction1","_c1","showApplyButton","selectedIndex","imageService","resetCoverImage","_r11","idx_r10","index","applyImage","appliedIndex","_r9","selectImage","CoverImageChooserComponent_ng_container_0_div_8_ng_container_2_Template","url_r12","$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_div_7_Template","CoverImageChooserComponent_ng_container_0_div_8_Template","acceptableExtensions","showReset","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","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","ɵɵdirectiveInject","DOCUMENT","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","CoverImageChooserComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgxFileDropModule","NgxFileDropComponent","NgxFileDropContentTemplateDirective","CommonModule","NgClass","NgForOf","NgIf","ImageComponent","TranslocoModule","TranslocoDirective","styles","changeDetection","_CoverImageChooserComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r3","ɵɵtemplate","EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_div_1_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_div_2_Template","ɵɵproperty","tmp_5_0","ctx_r1","reviewGroup","get","errors","required","tmp_6_0","duplicateName","ɵɵtextInterpolate","ɵɵelement","EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_div_1_ng_template_6_Template","ɵɵtemplateRefExtractor","ɵɵelementContainer","promotedTooltip_r4","ɵɵelementContainerStart","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","ɵɵclassProp","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","ɵɵpipeBind1","currentUser$","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r10","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","imageUrls","ɵɵresetView","ɵɵlistener","updateSelectedIndex","updateSelectedImage","handleReset","ɵɵtwoWayProperty","readingList","coverImageLocked","_r1","close","active","EditReadingListModalComponent_ng_container_0_ng_template_11_Template","EditReadingListModalComponent_ng_container_0_ng_template_15_Template","save","ɵɵpureFunction1","_c0","title","ɵɵclassMapInterpolate1","utilityService","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","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","ɵɵdirectiveInject","NgbActiveModal","ReadingListService","UtilityService","UploadService","ToastrService","ImageService","ChangeDetectorRef","AccountService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EditReadingListModalComponent_ng_container_0_Template","NgbNav","NgbNavItem","NgbNavItemRole","NgbNavLink","NgbNavContent","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NumberValueAccessor","CheckboxControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgIf","NgbTooltip","NgTemplateOutlet","CoverImageChooserComponent","NgbNavOutlet","AsyncPipe","TranslocoDirective","styles","changeDetection","_EditReadingListModalComponent","ɵɵelement","ɵɵproperty","r_r3","t_r4","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","route_r5","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r6","index_r7","ɵɵnextContext","index","ctx_r1","ɵɵresetView","navigateTo","ɵɵelementEnd","ɵɵtextInterpolate","ɵɵtemplate","DirectoryPickerComponent_ng_container_0_ol_15_li_1_ng_container_1_Template","DirectoryPickerComponent_ng_container_0_ol_15_li_1_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵclassMapInterpolate1","routeStack","peek","last_r8","nonActive_r9","DirectoryPickerComponent_ng_container_0_ol_15_li_1_Template","items","t_r10","folder_r12","_r11","$implicit","selectNode","ɵɵpureFunction1","_c1","disabled","ɵɵpropertyInterpolate1","idx_r13","name","ɵɵpropertyInterpolate","helpUrl","ɵɵsanitizeUrl","_r1","close","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","path","focus$","next","target","value","click$","updateTable","DirectoryPickerComponent_ng_container_0_ng_template_12_Template","DirectoryPickerComponent_ng_container_0_ol_15_Template","DirectoryPickerComponent_ng_container_0_ng_template_16_Template","goBack","DirectoryPickerComponent_ng_container_0_tr_31_Template","DirectoryPickerComponent_ng_container_0_a_33_Template","share","ɵɵtwoWayProperty","search","rt_r14","undefined","noBreadcrumb_r15","folders","length","DirectoryPickerComponent","constructor","modal","libraryService","startingFolder","WikiLink","Library","currentRoot","Stack","Subject","searching","searchFailed","text$","debouncedText$","pipe","debounceTime","distinctUntilChanged","clicksWithClosedPopup$","filter","instance","isPopupOpen","inputFocus$","merge","tap","switchMap","term","listDirectories","map","f","fullPath","catchError","of","ngOnInit","split","folders2","endsWith","forEach","folder","push","join","loadChildren","pop","stackPeek","subscribe","err","item","find","success","folderPath","ɵɵdirectiveInject","NgbActiveModal","LibraryService","selectors","viewQuery","rf","ctx","DirectoryPickerComponent_ng_container_0_Template","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","NgbTypeahead","FormsModule","NgModel","NgbHighlight","NgIf","NgFor","NgClass","TranslocoDirective","styles","_DirectoryPickerComponent","DefaultDatePipe","constructor","translocoService","transform","value","replacementString","Infinity","Number","isNaN","translate","ɵɵdirectiveInject","TranslocoService","pure","standalone","_DefaultDatePipe","FileTypeGroup","allFileTypeGroup","Object","keys","filter","key","isNaN","Number","parseInt","map","FileTypeGroupPipe","transform","value","FileTypeGroup","Archive","translate","Epub","Pdf","Images","pure","standalone","_FileTypeGroupPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","add","i_r3","$index","remove","ɵɵadvance","ɵɵpropertyInterpolate1","ɵɵtextInterpolate","label","t_r4","ɵɵrepeaterCreate","EditListComponent_form_0_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵproperty","form","ɵɵrepeater","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","v","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","EditListComponent_form_0_Template","CommonModule","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","Select2Module","TranslocoDirective","changeDetection","_EditListComponent","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","t_r2","ɵɵpureFunction1","_c0","ɵɵpipeBind1","ctx_r2","library","name","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_div_1_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_div_2_Template","ɵɵproperty","tmp_9_0","libraryForm","get","errors","required","tmp_10_0","duplicateName","ɵɵelement","kavitaplusEligibleTooltip_r4","ɵɵtextInterpolate","i_r6","opt_r5","ɵɵpipeBind2","lastScanned","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_Conditional_9_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_ng_template_10_Template","ɵɵtemplateRefExtractor","LibrarySettingsModalComponent_ng_container_0_ng_template_14_ng_template_12_Template","ɵɵelementContainer","LibrarySettingsModalComponent_ng_container_0_ng_template_14_option_17_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_18_Template","ɵɵclassProp","invalid","touched","dirty","typeTooltip_r7","ɵɵconditional","IsKavitaPlusEligible","libraryTypes","isAddLibrary","ɵɵlistener","folder_r10","ɵɵrestoreView","_r9","$implicit","ɵɵnextContext","ɵɵresetView","removeFolder","LibrarySettingsModalComponent_ng_container_0_ng_template_18_li_3_Template","_r8","openDirectoryPicker","selectedFolders","WikiLink","ManagingFiles","ɵɵsanitizeUrl","Scanner","LibrarySettingsModalComponent_ng_container_0_ng_template_22_p_0_Template","ɵɵtwoWayListener","$event","_r11","i0","ɵɵtwoWayBindingSet","imageUrls","updateCoverImageIndex","applyCoverImage","resetCoverImage","ɵɵtwoWayProperty","coverImage","group_r12","_r13","updateGlobs","ScannerExclude","excludePatterns","LibrarySettingsModalComponent_ng_container_0_ng_template_26_div_8_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_26_ng_template_18_Template","fileTypeGroups","_r14","nextStep","isNextDisabled","_r15","save","isDisabled","LibrarySettingsModalComponent_ng_container_0_ng_container_3_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_4_Template","_r1","close","active","LibrarySettingsModalComponent_ng_container_0_ng_template_14_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_18_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_22_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_26_Template","forceScan","reset","LibrarySettingsModalComponent_ng_container_0_ng_container_35_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_36_Template","addLibraryTitle_r16","ɵɵclassMapInterpolate1","utilityService","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","TabID","General","Folder","setupStep","Cover","Advanced","nav_r17","editLibraryButton_r18","StepID","LibrarySettingsModalComponent","constructor","LibraryType","inject","UtilityService","modal","NgbActiveModal","destroyRef","DestroyRef","uploadService","UploadService","modalService","NgbModal","settingService","SettingsService","confirmService","ConfirmService","libraryService","LibraryService","toastr","ToastrService","cdRef","ChangeDetectorRef","imageService","ImageService","FormGroup","FormControl","nonNullable","validators","Validators","type","Manga","folderWatching","includeInDashboard","includeInRecommended","includeInSearch","manageCollections","manageReadingLists","allowScrobbling","collapseSeriesRelationships","madeChanges","allFileTypeGroup","libType","parseInt","value","LightNovel","ngOnInit","getLibraryTypes","subscribe","types","markForCheck","undefined","push","getLibraryCoverImage","id","Comic","Book","setValue","disable","valueChanges","pipe","debounceTime","distinctUntilChanged","switchMap","libraryNameExists","tap","exists","isExistingName","setErrors","takeUntilDestroyed","setValues","FileTypeGroup","Archive","Images","Pdf","Epub","ComicVine","folders","fileTypeGroup","addControl","libraryFileTypes","includes","glob","length","items","valid","returnVal","scan","info","translate","__async","model","fileGroupTypes","map","item","startsWith","substr","confirm","update","create","success","coverUrl","updateLibraryCoverImage","selectedIndex","open","DirectoryPickerComponent","scrollable","size","closed","closeResult","folderPath","folder","filter","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","LibrarySettingsModalComponent_ng_container_0_Template","CommonModule","NgForOf","NgIf","NgTemplateOutlet","DatePipe","NgbModalModule","NgbNavLink","NgbNavItem","NgbNavContent","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","DefaultValueAccessor","CheckboxControlValueAccessor","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgbTooltip","SentenceCasePipe","NgbNav","NgbNavOutlet","CoverImageChooserComponent","TranslocoModule","TranslocoDirective","DefaultDatePipe","FileTypeGroupPipe","NgbAccordionDirective","NgbAccordionItem","NgbAccordionHeader","NgbAccordionButton","NgbAccordionCollapse","NgbAccordionBody","EditListComponent","changeDetection","_LibrarySettingsModalComponent","ActionService","constructor","libraryService","seriesService","readerService","toastr","modalService","confirmService","memberService","deviceService","collectionTagService","onDestroy","Subject","readingListModalRef","collectionModalRef","ngOnDestroy","next","complete","scanLibrary","library","callback","__async","hasOwnProperty","id","undefined","scan","pipe","take","subscribe","res","info","translate","name","refreshMetadata","confirm","editLibrary","modalRef","open","LibrarySettingsModalComponent","size","fullscreen","componentInstance","closed","closeResult","analyzeFiles","alert","analyze","deleteLibrary","delete","markSeriesAsRead","series","markRead","pagesRead","pages","success","markSeriesAsUnread","markUnread","scanSeries","libraryId","analyzeFilesForSeries","refreshMetdata","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","addMultipleToReadingList","AddToListModalComponent","scrollable","volumeIds","chapterIds","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","sendToDevice","device","sendTo","sendSeriesToDevice","sendSeriesTo","ɵɵinject","LibraryService","SeriesService","ReaderService","ToastrService","NgbModal","ConfirmService","MemberService","DeviceService","CollectionTagService","factory","ɵfac","providedIn","_ActionService","RelationKind","RelationKindsUnsorted","text","value","Prequel","Sequel","SpinOff","Adaptation","Annual","AlternativeSetting","AlternativeVersion","SideStory","Character","Contains","Edition","Doujinshi","Other","RelationKinds","slice","sort","a","b","localeCompare","TypeaheadSettings","constructor","debounce","multiple","id","showLocked","minCharacters","unique","addIfNonExisting","SearchResultGroup","constructor","libraries","series","collections","readingLists","persons","genres","tags","files","chapters","bookmarks","reset","SearchService","constructor","httpClient","baseUrl","environment","apiUrl","search","term","of","SearchResultGroup","get","encodeURIComponent","getSeriesForMangaFile","mangaFileId","getSeriesForChapter","chapterId","ɵɵinject","HttpClient","factory","ɵfac","providedIn","_SearchService","RelationshipPipe","constructor","translocoService","inject","TranslocoService","transform","relationship","undefined","RelationKind","Adaptation","translate","AlternativeSetting","AlternativeVersion","Character","Contains","Doujinshi","Other","Prequel","Sequel","SideStory","SpinOff","Parent","Edition","Annual","pure","standalone","_RelationshipPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","t_r2","ɵɵtextInterpolate2","item_r6","name","ctx_r4","libraryNames","libraryId","item_r7","ɵɵproperty","opt_r8","value","ɵɵpipeBind1","ɵɵlistener","$event","relation_r4","ɵɵrestoreView","_r3","$implicit","ɵɵnextContext","ɵɵresetView","updateSeries","ɵɵtemplate","EditSeriesRelationComponent_ng_container_0_div_8_ng_template_3_Template","ɵɵtemplateRefExtractor","EditSeriesRelationComponent_ng_container_0_div_8_ng_template_5_Template","EditSeriesRelationComponent_ng_container_0_div_8_option_11_Template","idx_r9","index","removeRelation","ɵɵelement","ɵɵpropertyInterpolate1","typeaheadSettings","focusTypeahead","formControl","RelationKind","Parent","relationOptions","ɵɵelementContainerStart","EditSeriesRelationComponent_ng_container_0_div_6_Template","EditSeriesRelationComponent_ng_container_0_div_8_Template","_r1","addNewRelation","ɵɵtextInterpolate1","WikiLink","SeriesRelationships","ɵɵsanitizeUrl","relations","length","EditSeriesRelationComponent","constructor","destroyRef","inject","DestroyRef","cdRef","ChangeDetectorRef","seriesService","SeriesService","utilityService","UtilityService","libraryService","LibraryService","searchService","SearchService","imageService","ImageService","save","EventEmitter","saveApi","ReplaySubject","RelationKinds","ngOnInit","getRelatedForSeries","series","id","subscribe","setupRelationRows","prequels","Prequel","sequels","Sequel","sideStories","SideStory","spinOffs","SpinOff","adaptations","Adaptation","others","Other","characters","Character","alternativeSettings","AlternativeSetting","alternativeVersions","AlternativeVersion","doujinshis","Doujinshi","contains","Contains","parent","editions","Edition","annuals","Annual","detectChanges","getLibraryNames","names","markForCheck","pipe","takeUntilDestroyed","saveState","kind","map","item","indx","__async","settings","firstValueFrom","createSeriesTypeahead","form","FormControl","disable","forEach","p","push","undefined","setTimeout","emit","splice","event","relation","seriesId","relationship","seriesSettings","TypeaheadSettings","minCharacters","multiple","unique","addIfNonExisting","fetchFn","searchFilter","search","group","items","compareFn","filter","s","options","m","selectionCompareFn","a","b","results","savedData","of","parseInt","updateRelationships","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EditSeriesRelationComponent_ng_container_0_Template","TypeaheadComponent","CommonModule","NgForOf","NgIf","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormControlDirective","TranslocoModule","TranslocoDirective","RelationshipPipe","changeDetection","_EditSeriesRelationComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r3","ɵɵelementContainerStart","ɵɵtemplate","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_6_div_1_Template","ɵɵproperty","errors_r4","required","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_14_div_1_Template","errors_r5","ɵɵelementContainer","ɵɵelement","ɵɵtextInterpolate","ɵɵclassMapInterpolate1","ctx_r1","metadata","summaryLocked","lock_r6","ɵɵpureFunction1","_c3","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_6_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_14_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_div_22_Template","ɵɵclassProp","tmp_7_0","editSeriesForm","get","invalid","touched","tmp_8_0","errors","series","sortNameLocked","_c1","tmp_13_0","tmp_14_0","localizedNameLocked","_c2","item_r8","title","ɵɵtextInterpolate2","item_r9","isoCode","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_container_17_p_1_Template","errors_r10","pattern","item_r11","item_r12","item_r13","item_r14","opt_r15","value","ɵɵpipeBind1","opt_r16","ɵɵlistener","$event","ɵɵrestoreView","_r7","ɵɵnextContext","updateLanguage","ɵɵresetView","languageLocked","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_6_Template","ɵɵtemplateRefExtractor","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_8_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_container_17_Template","updateGenres","genresLocked","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_24_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_26_Template","updateTags","tagsLocked","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_34_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_36_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_option_46_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_option_54_Template","languageSettings","ɵɵtwoWayProperty","releaseYearLocked","_c4","tmp_20_0","tmp_21_0","genreSettings","tagsSettings","ageRatingLocked","_c5","ageRatings","publicationStatusLocked","_c6","publicationStatuses","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_Template","tabs","TabID","Metadata","item_r18","name","item_r19","item_r20","item_r21","item_r22","item_r23","item_r24","item_r25","item_r26","item_r27","item_r28","item_r29","item_r30","item_r31","item_r32","item_r33","item_r34","item_r35","item_r36","item_r37","item_r38","item_r39","item_r40","item_r41","item_r42","item_r43","_r17","updatePerson","PersonRole","Writer","writerLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_5_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_7_Template","CoverArtist","coverArtistLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_14_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_16_Template","Publisher","publisherLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_23_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_25_Template","Imprint","imprintLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_32_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_34_Template","Penciller","pencillerLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_41_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_43_Template","Letterer","lettererLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_50_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_52_Template","Inker","inkerLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_59_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_61_Template","Editor","editorLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_68_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_70_Template","Colorist","coloristLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_77_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_79_Template","Translator","translatorLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_86_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_88_Template","Character","characterLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_95_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_97_Template","teamLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_104_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_106_Template","Location","locationLocked","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_113_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_115_Template","getPersonsSettings","Team","_r44","updateWeblinks","WebLinks","EditSeriesModalComponent_ng_container_0_div_1_li_18_ng_template_3_Template","_r45","imageUrls","updateSelectedIndex","updateSelectedImage","handleReset","coverImageLocked","saveNestedComponents","libraryName","maxCount","totalCount","publicationStatus","pages","size","file_r49","filePath","chapter","utilityService","mangaFormatToText","format","_r46","collapse_r47","ɵɵreference","toggle","volume_r48","$implicit","volumeCollapsed","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_li_1_li_25_Template","imageService","getVolumeCoverImage","id","formatVolumeName","createdUtc","ɵɵpipeBind2","lastModifiedUtc","ɵɵpureFunction0","_c7","volumeFiles","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_li_1_Template","seriesVolumes","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_div_3_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_div_29_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_div_32_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_Template","created","latestReadDate","lastChapterAdded","lastFolderScanned","folderPath","isLoadingVolumes","_r50","forceScan","EditSeriesModalComponent_ng_container_0_div_1_Conditional_33_Conditional_1_Template","EditSeriesModalComponent_ng_container_0_div_1_Conditional_33_Conditional_2_Template","ɵɵconditional","forceIsLoading","_r1","close","active","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_Template","EditSeriesModalComponent_ng_container_0_div_1_li_18_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_22_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_26_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_Template","EditSeriesModalComponent_ng_container_0_div_1_Conditional_33_Template","save","_c0","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","General","People","CoverImage","Related","Info","nav_r51","accountService","hasValidLicense$","valid","ctx_r52","_r52","item_r54","item","field_r55","field","unlock","EditSeriesModalComponent_ng_container_0_div_1_Template","EditSeriesModalComponent_ng_container_0_ng_template_2_Template","undefined","EditSeriesModalComponent","constructor","modal","inject","NgbActiveModal","seriesService","SeriesService","UtilityService","fb","FormBuilder","ImageService","libraryService","LibraryService","uploadService","UploadService","metadataService","MetadataService","cdRef","ChangeDetectorRef","AccountService","destroyRef","DestroyRef","toastr","ToastrService","hasForcedKPlus","TypeaheadSettings","peopleSettings","tags","genres","validLanguages","selectedCover","coverImageReset","EventEmitter","webLinks","split","role","ngOnInit","push","getSeriesCoverImage","getLibraryNames","pipe","takeUntilDestroyed","subscribe","names","libraryId","initSeries","Object","assign","group","FormControl","summary","Validators","localizedName","sortName","rating","userRating","coverImageIndex","ageRating","language","releaseYear","minLength","maxLength","markForCheck","getAllAgeRatings","ratings","getAllPublicationStatus","statuses","getAllValidLanguages","getMetadata","setupTypeaheads","patchValue","valueChanges","val","nameLocked","parseInt","getVolumes","volumes","length","chapters","map","c","getChapterCoverImage","v","forEach","vol","files","f","range","flat","reduce","sum1","volume","sum2","sum3","file","bytes","minNumber","LooseLeafOrDefaultNumber","translate","SpecialVolumeNumber","forkJoin","setupTagSettings","setupGenreTypeahead","setupPersonTypeahead","setupLanguageTypeahead","results","minCharacters","multiple","unique","showLocked","addIfNonExisting","compareFn","options","filter","m","fetchFn","getAllTags","items","addTransformFn","selectionCompareFn","a","b","toLowerCase","compareFnForAdd","filterMatches","savedData","of","getAllGenres","updateFromPreset","presetField","personSettings","createBlankPersonSettings","fetch","people","presetIds","p","person","includes","l","find","writers","characters","colorists","coverArtists","editors","inkers","letterers","pencillers","publishers","imprints","translators","teams","locations","fetchPeople","getAllPeople","success","coverImageUpdate","updateExternal","forceRefreshFromPlus","info","s","replaceAll","join","model","selectedIndex","apis","updateMetadata","nameFieldsDirty","dirty","nameFieldLockChanged","updateSeries","updateSeriesCoverImage","emit","persons","Other","Artist","index","url","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EditSeriesModalComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","DefaultValueAccessor","NumberValueAccessor","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","MinLengthValidator","MaxLengthValidator","FormGroupDirective","FormControlName","NgbNav","NgbNavContent","NgbNavItem","NgbNavLink","CommonModule","NgForOf","NgIf","NgTemplateOutlet","AsyncPipe","TitleCasePipe","DatePipe","TypeaheadComponent","CoverImageChooserComponent","EditSeriesRelationComponent","SentenceCasePipe","MangaFormatPipe","DefaultDatePipe","TimeAgoPipe","TagBadgeComponent","PublicationStatusPipe","NgbTooltip","BytesPipe","ImageComponent","NgbCollapse","NgbNavOutlet","DefaultValuePipe","TranslocoModule","TranslocoDirective","TranslocoDatePipe","UtcToLocalTimePipe","EditListComponent","styles","changeDetection","_EditSeriesModalComponent"],"x_google_ignoreList":[5]}