{"version":3,"sources":["src/app/_models/series-detail/relation-kind.ts","src/app/typeahead/_models/typeahead-settings.ts","src/app/_services/upload.service.ts","node_modules/ngx-file-drop/fesm2022/ngx-file-drop.mjs","src/app/cards/cover-image-chooser/cover-image-chooser.component.ts","src/app/cards/cover-image-chooser/cover-image-chooser.component.html","src/app/_models/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/_pipes/default-date.pipe.ts","src/app/shared/edit-list/edit-list.component.ts","src/app/shared/edit-list/edit-list.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","src/app/admin/_modals/directory-picker/directory-picker.component.ts","src/app/admin/_modals/directory-picker/directory-picker.component.html","src/app/_models/library/file-type-group.enum.ts","src/app/_pipes/file-type-group.pipe.ts","src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts","src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html"],"sourcesContent":["export enum RelationKind {\r\n Prequel = 1,\r\n Sequel = 2,\r\n SpinOff = 3,\r\n Adaptation = 4,\r\n SideStory = 5,\r\n Character = 6,\r\n Contains = 7,\r\n Other = 8,\r\n AlternativeSetting = 9,\r\n AlternativeVersion = 10,\r\n Doujinshi = 11,\r\n /**\r\n * This is UI only. Backend will generate Parent series for everything but Prequel/Sequel\r\n */\r\n Parent = 12,\r\n Edition = 13\r\n}\r\n\r\nconst RelationKindsUnsorted = [\r\n {text: 'Prequel', value: RelationKind.Prequel},\r\n {text: 'Sequel', value: RelationKind.Sequel},\r\n {text: 'Spin Off', value: RelationKind.SpinOff},\r\n {text: 'Adaptation', value: RelationKind.Adaptation},\r\n {text: 'Alternative Setting', value: RelationKind.AlternativeSetting},\r\n {text: 'Alternative Version', value: RelationKind.AlternativeVersion},\r\n {text: 'Side Story', value: RelationKind.SideStory},\r\n {text: 'Character', value: RelationKind.Character},\r\n {text: 'Contains', value: RelationKind.Contains},\r\n {text: 'Edition', value: RelationKind.Edition},\r\n {text: 'Doujinshi', value: RelationKind.Doujinshi},\r\n {text: 'Other', value: RelationKind.Other},\r\n];\r\n\r\nexport const RelationKinds = RelationKindsUnsorted.slice().sort((a, b) => a.text.localeCompare(b.text));\r\n","import { Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\n\r\nexport type SelectionCompareFn = (a: T, b: T) => boolean;\r\n\r\nexport class TypeaheadSettings {\r\n /**\r\n * How many ms between typing actions before pipeline to load data is triggered\r\n */\r\n debounce: number = 200;\r\n /**\r\n * Multiple options can be selected from dropdown. Will be rendered as tag badges.\r\n */\r\n multiple: boolean = false;\r\n /**\r\n * Id of the input element, for linking label elements (accessibility)\r\n */\r\n id: string = '';\r\n /**\r\n * Show a locked icon next to input and provide functionality around locking/unlocking a field\r\n */\r\n showLocked: boolean = false;\r\n /**\r\n * Data to preload the typeahead with on first load\r\n */\r\n /**\r\n * Data to preload the typeahead with on first load\r\n */\r\n savedData!: T[] | T;\r\n /**\r\n * Function to compare the elements. Should return all elements that fit the matching criteria. \r\n * This is only used with non-Observable based fetchFn, but must be defined for all uses of typeahead.\r\n */\r\n compareFn!: ((optionList: T[], filter: string) => T[]);\r\n /**\r\n * Must be defined when addIfNonExisting is true. Used to ensure no duplicates exist when adding.\r\n */\r\n compareFnForAdd!: ((optionList: T[], filter: string) => T[]);\r\n /**\r\n * Function which is used for comparing objects when keeping track of state. \r\n * Useful over shallow equal when you have image urls that have random numbers on them.\r\n */ \r\n selectionCompareFn?: SelectionCompareFn;\r\n /**\r\n * Function to fetch the data from the server. If data is mainatined in memory, wrap in an observable.\r\n */\r\n fetchFn!: (filter: string) => Observable;\r\n /**\r\n * Minimum number of characters needed to type to trigger the fetch pipeline\r\n */\r\n minCharacters: number = 1;\r\n /**\r\n * Optional form Control to tie model to. \r\n */\r\n formControl?: FormControl;\r\n /**\r\n * If true, typeahead will remove already selected items from fetchFn results. Only appies when multiple=true\r\n */\r\n unique: boolean = true;\r\n /**\r\n * If true, will fire an event for newItemAdded and will prompt the user to add form model to the list of selected items\r\n */\r\n addIfNonExisting: boolean = false;\r\n /**\r\n * Required for addIfNonExisting to transform the text from model into the item\r\n */\r\n addTransformFn!: (text: string) => T;\r\n /**\r\n * An optional, but recommended trackby identity function to help Angular render the list better\r\n */\r\n trackByIdentityFn!: (index: number, value: T) => T;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { TextResonse } from '../_types/text-response';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UploadService {\r\n\r\n private baseUrl = environment.apiUrl;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n\r\n uploadByUrl(url: string) {\r\n return this.httpClient.post(this.baseUrl + 'upload/upload-by-url', {url}, TextResonse);\r\n }\r\n\r\n /**\r\n * \r\n * @param seriesId Series to overwrite cover image for\r\n * @param url A base64 encoded url\r\n * @returns \r\n */\r\n updateSeriesCoverImage(seriesId: number, url: string) {\r\n return this.httpClient.post(this.baseUrl + 'upload/series', {id: seriesId, url: this._cleanBase64Url(url)});\r\n }\r\n\r\n updateCollectionCoverImage(tagId: number, url: string) {\r\n return this.httpClient.post(this.baseUrl + 'upload/collection', {id: tagId, url: this._cleanBase64Url(url)});\r\n }\r\n\r\n updateReadingListCoverImage(readingListId: number, url: string) {\r\n return this.httpClient.post(this.baseUrl + 'upload/reading-list', {id: readingListId, url: this._cleanBase64Url(url)});\r\n }\r\n\r\n updateChapterCoverImage(chapterId: number, url: string) {\r\n return this.httpClient.post(this.baseUrl + 'upload/chapter', {id: chapterId, url: this._cleanBase64Url(url)});\r\n }\r\n\r\n updateLibraryCoverImage(libraryId: number, url: string) {\r\n return this.httpClient.post(this.baseUrl + 'upload/library', {id: libraryId, url: this._cleanBase64Url(url)});\r\n }\r\n\r\n resetChapterCoverLock(chapterId: number, ) {\r\n return this.httpClient.post(this.baseUrl + 'upload/reset-chapter-lock', {id: chapterId, url: ''});\r\n }\r\n\r\n _cleanBase64Url(url: string) {\r\n if (url.startsWith('data')) {\r\n url = url.split(',')[1];\r\n }\r\n return url;\r\n }\r\n}\r\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\"];\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_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r4.dropZoneLabel);\n }\n}\nfunction NgxFileDropComponent_ng_template_4_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = 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(_r7);\n const ctx_r6 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r6.openFileSelector($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵpropertyInterpolate(\"value\", ctx_r5.browseBtnLabel);\n i0.ɵɵproperty(\"className\", ctx_r5.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(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showBrowseBtn);\n }\n}\nfunction NgxFileDropComponent_ng_template_6_Template(rf, ctx) {}\nconst _c1 = a0 => ({\n openFileSelector: a0\n});\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: [[3, \"className\", \"drop\", \"dragover\", \"dragenter\", \"dragleave\"], [3, \"className\"], [\"type\", \"file\", 1, \"ngx-file-drop__file-input\", 3, \"accept\", \"multiple\", \"change\"], [\"fileSelector\", \"\"], [\"defaultContentTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"ngx-file-drop__drop-zone-label\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"ngx-file-drop__drop-zone-label\"], [\"type\", \"button\", 3, \"className\", \"value\", \"click\"]],\n template: function NgxFileDropComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"drop\", function NgxFileDropComponent_Template_div_drop_0_listener($event) {\n return ctx.dropFiles($event);\n })(\"dragover\", function NgxFileDropComponent_Template_div_dragover_0_listener($event) {\n return ctx.onDragOver($event);\n })(\"dragenter\", function NgxFileDropComponent_Template_div_dragenter_0_listener($event) {\n return ctx.onDragEnter($event);\n })(\"dragleave\", function NgxFileDropComponent_Template_div_dragleave_0_listener($event) {\n return ctx.onDragLeave($event);\n });\n i0.ɵɵelementStart(1, \"div\", 1)(2, \"input\", 2, 3);\n i0.ɵɵlistener(\"change\", function NgxFileDropComponent_Template_input_change_2_listener($event) {\n return ctx.uploadFiles($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, NgxFileDropComponent_ng_template_4_Template, 2, 2, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(6, NgxFileDropComponent_ng_template_6_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const _r2 = i0.ɵɵreference(5);\n i0.ɵɵclassProp(\"ngx-file-drop__drop-zone--over\", ctx.isDraggingOverDropZone);\n i0.ɵɵproperty(\"className\", ctx.dropZoneClassName);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"className\", ctx.contentClassName);\n i0.ɵɵadvance(1);\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 || _r2)(\"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 {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n inject,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms';\r\nimport {NgxFileDropEntry, FileSystemFileEntry, NgxFileDropModule} from 'ngx-file-drop';\r\nimport { fromEvent } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ImageService } from 'src/app/_services/image.service';\r\nimport { KEY_CODES } from 'src/app/shared/_services/utility.service';\r\nimport { UploadService } from 'src/app/_services/upload.service';\r\nimport {CommonModule, DOCUMENT} from '@angular/common';\r\nimport {ImageComponent} from \"../../shared/image/image.component\";\r\nimport {translate, TranslocoModule} from \"@ngneat/transloco\";\r\n\r\n@Component({\r\n selector: 'app-cover-image-chooser',\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n NgxFileDropModule,\r\n CommonModule,\r\n ImageComponent,\r\n TranslocoModule\r\n ],\r\n templateUrl: './cover-image-chooser.component.html',\r\n styleUrls: ['./cover-image-chooser.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CoverImageChooserComponent implements OnInit {\r\n\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n public readonly imageService = inject(ImageService);\r\n public readonly fb = inject(FormBuilder);\r\n public readonly toastr = inject(ToastrService);\r\n public readonly uploadService = inject(UploadService);\r\n\r\n /**\r\n * If buttons show under images to allow immediate selection of cover images.\r\n */\r\n @Input() showApplyButton: boolean = false;\r\n /**\r\n * When a cover image is selected, this will be called with a base url representation of the file.\r\n */\r\n @Output() applyCover: EventEmitter = new EventEmitter();\r\n /**\r\n * When a cover image is reset, this will be called.\r\n */\r\n @Output() resetCover: EventEmitter = new EventEmitter();\r\n\r\n @Input() imageUrls: Array = [];\r\n @Output() imageUrlsChange: EventEmitter> = new EventEmitter>();\r\n\r\n /**\r\n * Should the control give the ability to select an image that emits the reset status for cover image\r\n */\r\n @Input() showReset: boolean = false;\r\n @Output() resetClicked: EventEmitter = new EventEmitter();\r\n\r\n /**\r\n * Emits the selected index. Used usually to check if something other than the default image was selected.\r\n */\r\n @Output() imageSelected: EventEmitter = new EventEmitter();\r\n /**\r\n * Emits a base64 encoded image\r\n */\r\n @Output() selectedBase64Url: EventEmitter = new EventEmitter();\r\n\r\n\r\n\r\n selectedIndex: number = 0;\r\n /**\r\n * Only applies for showApplyButton. Used to track which image is applied.\r\n */\r\n appliedIndex: number = 0;\r\n form!: FormGroup;\r\n files: NgxFileDropEntry[] = [];\r\n acceptableExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.avif'].join(',');\r\n mode: 'file' | 'url' | 'all' = 'all';\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document) { }\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n coverImageUrl: new FormControl('', [])\r\n });\r\n\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n\r\n /**\r\n * Generates a base64 encoding for an Image. Used in manual file upload flow.\r\n * @param img\r\n * @returns\r\n */\r\n getBase64Image(img: HTMLImageElement) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n const ctx = canvas.getContext(\"2d\", {alpha: false});\r\n if (!ctx) {\r\n return '';\r\n }\r\n\r\n ctx.drawImage(img, 0, 0);\r\n return canvas.toDataURL(\"image/png\");\r\n }\r\n\r\n selectImage(index: number, callback?: Function) {\r\n if (this.selectedIndex === index) { return; }\r\n\r\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\r\n if (!this.imageUrls[index].startsWith('data:image/')) {\r\n const imgUrl = this.imageUrls[index];\r\n const img = new Image();\r\n img.crossOrigin = 'Anonymous';\r\n img.src = imgUrl;\r\n img.onload = (e) => {\r\n this.handleUrlImageAdd(img, index);\r\n this.selectedBase64Url.emit(this.imageUrls[this.selectedIndex]);\r\n if (callback) callback(index);\r\n };\r\n img.onerror = (e) => {\r\n this.toastr.error(translate('errors.rejected-cover-upload'));\r\n this.form.get('coverImageUrl')?.setValue('');\r\n this.cdRef.markForCheck();\r\n };\r\n this.form.get('coverImageUrl')?.setValue('');\r\n this.cdRef.markForCheck();\r\n return;\r\n }\r\n\r\n this.selectedIndex = index;\r\n this.cdRef.markForCheck();\r\n this.imageSelected.emit(this.selectedIndex);\r\n this.selectedBase64Url.emit(this.imageUrls[this.selectedIndex]);\r\n }\r\n\r\n applyImage(index: number) {\r\n if (!this.showApplyButton) return;\r\n\r\n this.selectImage(index, () => {\r\n this.applyCover.emit(this.imageUrls[index]);\r\n this.appliedIndex = index;\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n resetImage() {\r\n if (this.showApplyButton) {\r\n this.resetCover.emit();\r\n }\r\n }\r\n\r\n loadImage(url?: string) {\r\n url = url || this.form.get('coverImageUrl')?.value.trim();\r\n if (!url || url === '') return;\r\n\r\n this.uploadService.uploadByUrl(url).subscribe(filename => {\r\n const img = new Image();\r\n img.crossOrigin = 'Anonymous';\r\n img.src = this.imageService.getCoverUploadImage(filename);\r\n img.onload = (e) => this.handleUrlImageAdd(img);\r\n img.onerror = (e) => {\r\n this.toastr.error(translate('errors.rejected-cover-upload'));\r\n this.form.get('coverImageUrl')?.setValue('');\r\n this.cdRef.markForCheck();\r\n };\r\n this.form.get('coverImageUrl')?.setValue('');\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n loadImageFromUrl(url?: string) {\r\n url = url || this.form.get('coverImageUrl')?.value.trim();\r\n if (!url || url === '') return;\r\n\r\n this.uploadService.uploadByUrl(url).subscribe(filename => {\r\n const img = new Image();\r\n img.crossOrigin = 'Anonymous';\r\n img.src = this.imageService.getCoverUploadImage(filename);\r\n img.onload = (e) => this.handleUrlImageAdd(img);\r\n img.onerror = (e) => {\r\n this.toastr.error(translate('errors.rejected-cover-upload'));\r\n this.form.get('coverImageUrl')?.setValue('');\r\n this.cdRef.markForCheck();\r\n };\r\n this.form.get('coverImageUrl')?.setValue('');\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n\r\n\r\n changeMode(mode: 'url') {\r\n this.mode = mode;\r\n this.setupEnterHandler();\r\n this.cdRef.markForCheck();\r\n\r\n setTimeout(() => (this.document.querySelector('#load-image') as HTMLInputElement)?.focus(), 10);\r\n }\r\n\r\n public dropped(files: NgxFileDropEntry[]) {\r\n this.files = files;\r\n for (const droppedFile of files) {\r\n\r\n // Is it a file?\r\n if (droppedFile.fileEntry.isFile) {\r\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n fileEntry.file((file: File) => {\r\n const reader = new FileReader();\r\n reader.onload = (e) => this.handleFileImageAdd(e);\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleFileImageAdd(e: any) {\r\n if (e.target == null) return;\r\n\r\n this.imageUrls.push(e.target.result); // This is base64 already\r\n this.imageUrlsChange.emit(this.imageUrls);\r\n this.selectedIndex = this.imageUrls.length - 1;\r\n this.imageSelected.emit(this.selectedIndex); // Auto select newly uploaded image\r\n this.selectedBase64Url.emit(e.target.result);\r\n setTimeout(() => {\r\n (this.document.querySelector('div.image-card[aria-label=\"Image ' + this.selectedIndex + '\"]') as HTMLElement).focus();\r\n })\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n handleUrlImageAdd(img: HTMLImageElement, index: number = -1) {\r\n const url = this.getBase64Image(img);\r\n if (index >= 0) {\r\n this.imageUrls[index] = url;\r\n } else {\r\n this.imageUrls.push(url);\r\n }\r\n\r\n this.imageUrlsChange.emit(this.imageUrls);\r\n this.cdRef.markForCheck();\r\n\r\n setTimeout(() => {\r\n // Auto select newly uploaded image and tell parent of new base64 url\r\n this.selectImage(index >= 0 ? index : this.imageUrls.length - 1);\r\n });\r\n }\r\n\r\n reset() {\r\n this.resetClicked.emit();\r\n this.selectedIndex = -1;\r\n }\r\n\r\n setupEnterHandler() {\r\n setTimeout(() => {\r\n const elem = document.querySelector('input[id=\"load-image\"]');\r\n if (elem == null) return;\r\n fromEvent(elem, 'keydown')\r\n .pipe(takeWhile(() => this.mode === 'url')).subscribe((event) => {\r\n const evt = event;\r\n switch(evt.key) {\r\n case KEY_CODES.ENTER:\r\n {\r\n this.loadImage();\r\n break;\r\n }\r\n\r\n case KEY_CODES.ESC_KEY:\r\n this.mode = 'all';\r\n event.stopPropagation();\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n });\r\n }\r\n\r\n protected fileOver(event: any){}\r\n protected fileLeave(event: any){}\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n 0\">\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n","import { Chapter } from \"../chapter\";\r\nimport { Library } from \"../library/library\";\r\nimport { MangaFile } from \"../manga-file\";\r\nimport { SearchResult } from \"./search-result\";\r\nimport { Tag } from \"../tag\";\r\nimport {BookmarkSearchResult} from \"./bookmark-search-result\";\r\n\r\nexport class SearchResultGroup {\r\n libraries: Array = [];\r\n series: Array = [];\r\n collections: Array = [];\r\n readingLists: Array = [];\r\n persons: Array = [];\r\n genres: Array = [];\r\n tags: Array = [];\r\n files: Array = [];\r\n chapters: Array = [];\r\n bookmarks: Array = [];\r\n\r\n reset() {\r\n this.libraries = [];\r\n this.series = [];\r\n this.collections = [];\r\n this.readingLists = [];\r\n this.persons = [];\r\n this.genres = [];\r\n this.tags = [];\r\n this.files = [];\r\n this.chapters = [];\r\n this.bookmarks = [];\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SearchResultGroup } from '../_models/search/search-result-group';\r\nimport { Series } from '../_models/series';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchService {\r\n\r\n baseUrl = environment.apiUrl;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n search(term: string) {\r\n if (term === '') {\r\n return of(new SearchResultGroup());\r\n }\r\n return this.httpClient.get(this.baseUrl + 'search/search?queryString=' + encodeURIComponent(term));\r\n }\r\n\r\n getSeriesForMangaFile(mangaFileId: number) {\r\n return this.httpClient.get(this.baseUrl + 'search/series-for-mangafile?mangaFileId=' + mangaFileId);\r\n }\r\n\r\n getSeriesForChapter(chapterId: number) {\r\n return this.httpClient.get(this.baseUrl + 'search/series-for-chapter?chapterId=' + chapterId);\r\n }\r\n}\r\n","import {inject, Pipe, PipeTransform} from '@angular/core';\r\nimport { RelationKind } from '../_models/series-detail/relation-kind';\r\nimport {TranslocoService} from \"@ngneat/transloco\";\r\n\r\n@Pipe({\r\n name: 'relationship',\r\n standalone: true\r\n})\r\nexport class RelationshipPipe implements PipeTransform {\r\n\r\n translocoService = inject(TranslocoService);\r\n\r\n transform(relationship: RelationKind | undefined): string {\r\n if (relationship === undefined) return '';\r\n switch (relationship) {\r\n case RelationKind.Adaptation:\r\n return this.translocoService.translate('relationship-pipe.adaptation');\r\n case RelationKind.AlternativeSetting:\r\n return this.translocoService.translate('relationship-pipe.alternative-setting');\r\n case RelationKind.AlternativeVersion:\r\n return this.translocoService.translate('relationship-pipe.alternative-version');\r\n case RelationKind.Character:\r\n return this.translocoService.translate('relationship-pipe.character');\r\n case RelationKind.Contains:\r\n return this.translocoService.translate('relationship-pipe.contains');\r\n case RelationKind.Doujinshi:\r\n return this.translocoService.translate('relationship-pipe.doujinshi');\r\n case RelationKind.Other:\r\n return this.translocoService.translate('relationship-pipe.other');\r\n case RelationKind.Prequel:\r\n return this.translocoService.translate('relationship-pipe.prequel');\r\n case RelationKind.Sequel:\r\n return this.translocoService.translate('relationship-pipe.sequel');\r\n case RelationKind.SideStory:\r\n return this.translocoService.translate('relationship-pipe.side-story');\r\n case RelationKind.SpinOff:\r\n return this.translocoService.translate('relationship-pipe.spin-off');\r\n case RelationKind.Parent:\r\n return this.translocoService.translate('relationship-pipe.parent');\r\n case RelationKind.Edition:\r\n return this.translocoService.translate('relationship-pipe.edition');\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, DestroyRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\r\nimport { map, Observable, of, firstValueFrom, ReplaySubject } from 'rxjs';\r\nimport { UtilityService } from 'src/app/shared/_services/utility.service';\r\nimport { TypeaheadSettings } from 'src/app/typeahead/_models/typeahead-settings';\r\nimport { SearchResult } from 'src/app/_models/search/search-result';\r\nimport { Series } from 'src/app/_models/series';\r\nimport { RelationKind, RelationKinds } from 'src/app/_models/series-detail/relation-kind';\r\nimport { ImageService } from 'src/app/_services/image.service';\r\nimport { LibraryService } from 'src/app/_services/library.service';\r\nimport { SearchService } from 'src/app/_services/search.service';\r\nimport { SeriesService } from 'src/app/_services/series.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {TypeaheadComponent} from \"../../typeahead/_components/typeahead.component\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {TranslocoModule} from \"@ngneat/transloco\";\r\nimport {RelationshipPipe} from \"../../_pipes/relationship.pipe\";\r\n\r\ninterface RelationControl {\r\n series: {id: number, name: string} | undefined; // Will add type as well\r\n typeaheadSettings: TypeaheadSettings;\r\n formControl: FormControl;\r\n}\r\n\r\n@Component({\r\n selector: 'app-edit-series-relation',\r\n standalone: true,\r\n imports: [\r\n TypeaheadComponent,\r\n CommonModule,\r\n ReactiveFormsModule,\r\n TranslocoModule,\r\n RelationshipPipe,\r\n ],\r\n templateUrl: './edit-series-relation.component.html',\r\n styleUrls: ['./edit-series-relation.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EditSeriesRelationComponent implements OnInit {\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n private readonly seriesService = inject(SeriesService);\r\n private readonly utilityService = inject(UtilityService);\r\n private readonly libraryService = inject(LibraryService);\r\n private readonly searchService = inject(SearchService);\r\n public readonly imageService = inject(ImageService);\r\n protected readonly RelationKind = RelationKind;\r\n\r\n @Input({required: true}) series!: Series;\r\n /**\r\n * This will tell the component to save based on its internal state\r\n */\r\n @Input() save: EventEmitter = new EventEmitter();\r\n\r\n @Output() saveApi = new ReplaySubject(1);\r\n\r\n relationOptions = RelationKinds;\r\n relations: Array = [];\r\n libraryNames: {[key:number]: string} = {};\r\n\r\n focusTypeahead = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n this.seriesService.getRelatedForSeries(this.series.id).subscribe(async relations => {\r\n this.setupRelationRows(relations.prequels, RelationKind.Prequel);\r\n this.setupRelationRows(relations.sequels, RelationKind.Sequel);\r\n this.setupRelationRows(relations.sideStories, RelationKind.SideStory);\r\n this.setupRelationRows(relations.spinOffs, RelationKind.SpinOff);\r\n this.setupRelationRows(relations.adaptations, RelationKind.Adaptation);\r\n this.setupRelationRows(relations.others, RelationKind.Other);\r\n this.setupRelationRows(relations.characters, RelationKind.Character);\r\n this.setupRelationRows(relations.alternativeSettings, RelationKind.AlternativeSetting);\r\n this.setupRelationRows(relations.alternativeVersions, RelationKind.AlternativeVersion);\r\n this.setupRelationRows(relations.doujinshis, RelationKind.Doujinshi);\r\n this.setupRelationRows(relations.contains, RelationKind.Contains);\r\n this.setupRelationRows(relations.parent, RelationKind.Parent);\r\n this.setupRelationRows(relations.editions, RelationKind.Edition);\r\n this.cdRef.detectChanges();\r\n });\r\n\r\n this.libraryService.getLibraryNames().subscribe(names => {\r\n this.libraryNames = names;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.save.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.saveState());\r\n }\r\n\r\n setupRelationRows(relations: Array, kind: RelationKind) {\r\n relations.map(async (item, indx) => {\r\n const settings = await firstValueFrom(this.createSeriesTypeahead(item, kind, indx));\r\n const form = new FormControl(kind, []);\r\n if (kind === RelationKind.Parent) {\r\n form.disable();\r\n }\r\n return {series: item, typeaheadSettings: settings, formControl: form};\r\n }).forEach(async p => {\r\n this.relations.push(await p);\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n async addNewRelation() {\r\n this.relations.push({series: undefined, formControl: new FormControl(RelationKind.Adaptation, []), typeaheadSettings: await firstValueFrom(this.createSeriesTypeahead(undefined, RelationKind.Adaptation, this.relations.length))});\r\n this.cdRef.markForCheck();\r\n\r\n // Focus on the new typeahead\r\n setTimeout(() => {\r\n this.focusTypeahead.emit(`relation--${this.relations.length - 1}`);\r\n }, 10);\r\n }\r\n\r\n removeRelation(index: number) {\r\n this.relations.splice(index, 1);\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n\r\n updateSeries(event: Array, relation: RelationControl) {\r\n if (event[0] === undefined) {\r\n relation.series = undefined;\r\n this.cdRef.markForCheck();\r\n return;\r\n }\r\n relation.series = {id: event[0].seriesId, name: event[0].name};\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n createSeriesTypeahead(series: Series | undefined, relationship: RelationKind, index: number): Observable> {\r\n const seriesSettings = new TypeaheadSettings();\r\n seriesSettings.minCharacters = 0;\r\n seriesSettings.multiple = false;\r\n seriesSettings.id = 'relation--' + index;\r\n seriesSettings.unique = true;\r\n seriesSettings.addIfNonExisting = false;\r\n seriesSettings.fetchFn = (searchFilter: string) => this.searchService.search(searchFilter).pipe(\r\n map(group => group.series),\r\n map(items => seriesSettings.compareFn(items, searchFilter)),\r\n map(series => series.filter(s => s.seriesId !== this.series.id)),\r\n );\r\n\r\n seriesSettings.compareFn = (options: SearchResult[], filter: string) => {\r\n return options.filter(m => this.utilityService.filter(m.name, filter));\r\n }\r\n\r\n seriesSettings.selectionCompareFn = (a: SearchResult, b: SearchResult) => {\r\n return a.seriesId == b.seriesId;\r\n }\r\n\r\n if (series !== undefined) {\r\n return this.searchService.search(series.name).pipe(\r\n map(group => group.series), map(results => {\r\n seriesSettings.savedData = results.filter(s => s.seriesId === series.id);\r\n return seriesSettings;\r\n }));\r\n }\r\n\r\n return of(seriesSettings);\r\n }\r\n\r\n saveState() {\r\n const adaptations = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Adaptation && item.series !== undefined).map(item => item.series!.id);\r\n const characters = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Character && item.series !== undefined).map(item => item.series!.id);\r\n const contains = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Contains && item.series !== undefined).map(item => item.series!.id);\r\n const others = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Other && item.series !== undefined).map(item => item.series!.id);\r\n const prequels = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Prequel && item.series !== undefined).map(item => item.series!.id);\r\n const sequels = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Sequel && item.series !== undefined).map(item => item.series!.id);\r\n const sideStories = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.SideStory && item.series !== undefined).map(item => item.series!.id);\r\n const spinOffs = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.SpinOff && item.series !== undefined).map(item => item.series!.id);\r\n const alternativeSettings = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.AlternativeSetting && item.series !== undefined).map(item => item.series!.id);\r\n const alternativeVersions = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.AlternativeVersion && item.series !== undefined).map(item => item.series!.id);\r\n const doujinshis = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Doujinshi && item.series !== undefined).map(item => item.series!.id);\r\n const editions = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Edition && item.series !== undefined).map(item => item.series!.id);\r\n\r\n // NOTE: We can actually emit this onto an observable and in main parent, use mergeMap into the forkJoin\r\n this.seriesService.updateRelationships(this.series.id, adaptations, characters, contains, others, prequels, sequels, sideStories, spinOffs, alternativeSettings, alternativeVersions, doujinshis, editions).subscribe(() => {});\r\n\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n

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

\r\n\r\n
0\">\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {{item.name}} ({{libraryNames[item.libraryId]}})\r\n \r\n \r\n {{item.name}} ({{libraryNames[item.libraryId]}})\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {TranslocoService} from \"@ngneat/transloco\";\r\n\r\n@Pipe({\r\n name: 'defaultDate',\r\n pure: true,\r\n standalone: true\r\n})\r\nexport class DefaultDatePipe implements PipeTransform {\r\n\r\n // TODO: Figure out how to translate Never\r\n constructor(private translocoService: TranslocoService) {\r\n }\r\n transform(value: any, replacementString = 'default-date-pipe.never'): string {\r\n if (value === null || value === undefined || value === '' || value === Infinity || Number.isNaN(value) || value === '1/1/01') {\r\n return this.translocoService.translate(replacementString);\r\n };\r\n return value;\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, DestroyRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormControl, FormGroup, ReactiveFormsModule} from \"@angular/forms\";\r\nimport {Select2Module} from \"ng-select2-component\";\r\nimport {TranslocoDirective} from \"@ngneat/transloco\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {debounceTime, distinctUntilChanged, tap} from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: 'app-edit-list',\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule, Select2Module, TranslocoDirective],\r\n templateUrl: './edit-list.component.html',\r\n styleUrl: './edit-list.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EditListComponent implements OnInit {\r\n\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n @Input({required: true}) items: Array = [];\r\n @Input({required: true}) label = '';\r\n @Output() updateItems = new EventEmitter>();\r\n\r\n form: FormGroup = new FormGroup({});\r\n private combinedItems: string = '';\r\n\r\n get Items() {\r\n return this.combinedItems.split(',') || [''];\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.items.forEach((link, index) => {\r\n this.form.addControl('link' + index, new FormControl(link, []));\r\n });\r\n\r\n this.combinedItems = this.items.join(',');\r\n\r\n this.form.valueChanges.pipe(\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n tap(data => this.emit()),\r\n takeUntilDestroyed(this.destroyRef))\r\n .subscribe();\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n add() {\r\n this.combinedItems += ',';\r\n this.form.addControl('link' + (this.Items.length - 1), new FormControl('', []));\r\n this.emit();\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n remove(index: number) {\r\n const tokens = this.combinedItems.split(',');\r\n const tokenToRemove = tokens[index];\r\n\r\n this.combinedItems = tokens.filter(t => t != tokenToRemove).join(',');\r\n for (const [index, [key, value]] of Object.entries(Object.entries(this.form.controls))) {\r\n if (key.startsWith('link') && this.form.get(key)?.value === tokenToRemove) {\r\n this.form.removeControl('link' + index, {emitEvent: true});\r\n }\r\n }\r\n\r\n this.emit();\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n emit() {\r\n this.updateItems.emit(Object.keys(this.form.controls)\r\n .filter(key => key.startsWith('link'))\r\n .map(key => this.form.get(key)?.value)\r\n .filter(v => v !== null && v !== ''));\r\n }\r\n}\r\n","
\r\n\r\n @for(item of Items; let i = $index; track item) {\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n\r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, DestroyRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnInit\r\n} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {\r\n NgbActiveModal, NgbCollapse,\r\n NgbNav,\r\n NgbNavContent,\r\n NgbNavItem,\r\n NgbNavLink,\r\n NgbNavOutlet,\r\n NgbTooltip\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\r\nimport { TypeaheadSettings } from 'src/app/typeahead/_models/typeahead-settings';\r\nimport { Chapter } from 'src/app/_models/chapter';\r\nimport { CollectionTag } from 'src/app/_models/collection-tag';\r\nimport { Genre } from 'src/app/_models/metadata/genre';\r\nimport { AgeRatingDto } from 'src/app/_models/metadata/age-rating-dto';\r\nimport { Language } from 'src/app/_models/metadata/language';\r\nimport { PublicationStatusDto } from 'src/app/_models/metadata/publication-status-dto';\r\nimport { Person, PersonRole } from 'src/app/_models/metadata/person';\r\nimport { Series } from 'src/app/_models/series';\r\nimport { SeriesMetadata } from 'src/app/_models/metadata/series-metadata';\r\nimport { Tag } from 'src/app/_models/tag';\r\nimport { CollectionTagService } from 'src/app/_services/collection-tag.service';\r\nimport { ImageService } from 'src/app/_services/image.service';\r\nimport { LibraryService } from 'src/app/_services/library.service';\r\nimport { MetadataService } from 'src/app/_services/metadata.service';\r\nimport { SeriesService } from 'src/app/_services/series.service';\r\nimport { UploadService } from 'src/app/_services/upload.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {TypeaheadComponent} from \"../../../typeahead/_components/typeahead.component\";\r\nimport {CoverImageChooserComponent} from \"../../cover-image-chooser/cover-image-chooser.component\";\r\nimport {EditSeriesRelationComponent} from \"../../edit-series-relation/edit-series-relation.component\";\r\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\r\nimport {MangaFormatPipe} from \"../../../_pipes/manga-format.pipe\";\r\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\r\nimport {TimeAgoPipe} from \"../../../_pipes/time-ago.pipe\";\r\nimport {TagBadgeComponent} from \"../../../shared/tag-badge/tag-badge.component\";\r\nimport {PublicationStatusPipe} from \"../../../_pipes/publication-status.pipe\";\r\nimport {BytesPipe} from \"../../../_pipes/bytes.pipe\";\r\nimport {ImageComponent} from \"../../../shared/image/image.component\";\r\nimport {DefaultValuePipe} from \"../../../_pipes/default-value.pipe\";\r\nimport {TranslocoModule} from \"@ngneat/transloco\";\r\nimport {TranslocoDatePipe} from \"@ngneat/transloco-locale\";\r\nimport {UtcToLocalTimePipe} from \"../../../_pipes/utc-to-local-time.pipe\";\r\nimport {EditListComponent} from \"../../../shared/edit-list/edit-list.component\";\r\n\r\nenum TabID {\r\n General = 0,\r\n Metadata = 1,\r\n People = 2,\r\n WebLinks = 3,\r\n CoverImage = 4,\r\n Related = 5,\r\n Info = 6,\r\n}\r\n\r\n@Component({\r\n selector: 'app-edit-series-modal',\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n NgbNav,\r\n NgbNavContent,\r\n NgbNavItem,\r\n NgbNavLink,\r\n CommonModule,\r\n TypeaheadComponent,\r\n CoverImageChooserComponent,\r\n EditSeriesRelationComponent,\r\n SentenceCasePipe,\r\n MangaFormatPipe,\r\n DefaultDatePipe,\r\n TimeAgoPipe,\r\n TagBadgeComponent,\r\n PublicationStatusPipe,\r\n NgbTooltip,\r\n BytesPipe,\r\n ImageComponent,\r\n NgbCollapse,\r\n NgbNavOutlet,\r\n DefaultValuePipe,\r\n TranslocoModule,\r\n TranslocoDatePipe,\r\n UtcToLocalTimePipe,\r\n EditListComponent,\r\n ],\r\n templateUrl: './edit-series-modal.component.html',\r\n styleUrls: ['./edit-series-modal.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EditSeriesModalComponent implements OnInit {\r\n\r\n public readonly modal = inject(NgbActiveModal);\r\n private readonly seriesService = inject(SeriesService);\r\n public readonly utilityService = inject(UtilityService);\r\n private readonly fb = inject(FormBuilder);\r\n public readonly imageService = inject(ImageService);\r\n private readonly libraryService = inject(LibraryService);\r\n private readonly collectionService = inject(CollectionTagService);\r\n private readonly uploadService = inject(UploadService);\r\n private readonly metadataService = inject(MetadataService);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n\r\n protected readonly TabID = TabID;\r\n protected readonly PersonRole = PersonRole;\r\n protected readonly Breakpoint = Breakpoint;\r\n\r\n @Input({required: true}) series!: Series;\r\n\r\n\r\n seriesVolumes: any[] = [];\r\n isLoadingVolumes = false;\r\n /**\r\n * A copy of the series from init. This is used to compare values for name fields to see if lock was modified\r\n */\r\n initSeries!: Series;\r\n\r\n volumeCollapsed: any = {};\r\n tabs = ['general-tab', 'metadata-tab', 'people-tab', 'web-links-tab', 'cover-image-tab', 'related-tab', 'info-tab'];\r\n active = this.tabs[0];\r\n editSeriesForm!: FormGroup;\r\n libraryName: string | undefined = undefined;\r\n size: number = 0;\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n // Typeaheads\r\n tagsSettings: TypeaheadSettings = new TypeaheadSettings();\r\n languageSettings: TypeaheadSettings = new TypeaheadSettings();\r\n peopleSettings: {[PersonRole: string]: TypeaheadSettings} = {};\r\n collectionTagSettings: TypeaheadSettings = new TypeaheadSettings();\r\n genreSettings: TypeaheadSettings = new TypeaheadSettings();\r\n\r\n collectionTags: CollectionTag[] = [];\r\n tags: Tag[] = [];\r\n genres: Genre[] = [];\r\n ageRatings: Array = [];\r\n publicationStatuses: Array = [];\r\n validLanguages: Array = [];\r\n\r\n metadata!: SeriesMetadata;\r\n imageUrls: Array = [];\r\n /**\r\n * Selected Cover for uploading\r\n */\r\n selectedCover: string = '';\r\n coverImageReset = false;\r\n\r\n saveNestedComponents: EventEmitter = new EventEmitter();\r\n\r\n get WebLinks() {\r\n return this.metadata?.webLinks.split(',') || [''];\r\n }\r\n\r\n getPersonsSettings(role: PersonRole) {\r\n return this.peopleSettings[role];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.imageUrls.push(this.imageService.getSeriesCoverImage(this.series.id));\r\n\r\n this.libraryService.getLibraryNames().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(names => {\r\n this.libraryName = names[this.series.libraryId];\r\n });\r\n\r\n this.initSeries = Object.assign({}, this.series);\r\n\r\n this.editSeriesForm = this.fb.group({\r\n id: new FormControl(this.series.id, []),\r\n summary: new FormControl('', []),\r\n name: new FormControl(this.series.name, [Validators.required]),\r\n localizedName: new FormControl(this.series.localizedName, []),\r\n sortName: new FormControl(this.series.sortName, [Validators.required]),\r\n rating: new FormControl(this.series.userRating, []),\r\n\r\n coverImageIndex: new FormControl(0, []),\r\n coverImageLocked: new FormControl(this.series.coverImageLocked, []),\r\n\r\n ageRating: new FormControl('', []),\r\n publicationStatus: new FormControl('', []),\r\n language: new FormControl('', []),\r\n releaseYear: new FormControl('', [Validators.minLength(4), Validators.maxLength(4), Validators.pattern(/([1-9]\\d{3})|[0]{1}/)]),\r\n });\r\n this.cdRef.markForCheck();\r\n\r\n\r\n this.metadataService.getAllAgeRatings().subscribe(ratings => {\r\n this.ageRatings = ratings;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.metadataService.getAllPublicationStatus().subscribe(statuses => {\r\n this.publicationStatuses = statuses;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.metadataService.getAllValidLanguages().subscribe(validLanguages => {\r\n this.validLanguages = validLanguages;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.seriesService.getMetadata(this.series.id).subscribe(metadata => {\r\n if (metadata) {\r\n this.metadata = metadata;\r\n\r\n this.setupTypeaheads();\r\n this.editSeriesForm.get('summary')?.patchValue(this.metadata.summary);\r\n this.editSeriesForm.get('ageRating')?.patchValue(this.metadata.ageRating);\r\n this.editSeriesForm.get('publicationStatus')?.patchValue(this.metadata.publicationStatus);\r\n this.editSeriesForm.get('language')?.patchValue(this.metadata.language);\r\n this.editSeriesForm.get('releaseYear')?.patchValue(this.metadata.releaseYear);\r\n\r\n this.cdRef.markForCheck();\r\n\r\n this.editSeriesForm.get('name')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.series.nameLocked = true;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.editSeriesForm.get('sortName')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.series.sortNameLocked = true;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.editSeriesForm.get('localizedName')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.series.localizedNameLocked = true;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.editSeriesForm.get('summary')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.metadata.summaryLocked = true;\r\n this.metadata.summary = val;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n\r\n this.editSeriesForm.get('ageRating')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.metadata.ageRating = parseInt(val + '', 10);\r\n this.metadata.ageRatingLocked = true;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.editSeriesForm.get('publicationStatus')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.metadata.publicationStatus = parseInt(val + '', 10);\r\n this.metadata.publicationStatusLocked = true;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n this.editSeriesForm.get('releaseYear')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\r\n this.metadata.releaseYear = parseInt(val + '', 10);\r\n this.metadata.releaseYearLocked = true;\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n });\r\n\r\n this.isLoadingVolumes = true;\r\n this.cdRef.markForCheck();\r\n this.seriesService.getVolumes(this.series.id).subscribe(volumes => {\r\n this.seriesVolumes = volumes;\r\n this.isLoadingVolumes = false;\r\n\r\n if (this.seriesVolumes.length === 1) {\r\n this.imageUrls.push(...this.seriesVolumes[0].chapters.map((c: Chapter) => this.imageService.getChapterCoverImage(c.id)));\r\n } else {\r\n this.imageUrls.push(...this.seriesVolumes.map(v => this.imageService.getVolumeCoverImage(v.id)));\r\n }\r\n\r\n volumes.forEach(v => {\r\n this.volumeCollapsed[v.name] = true;\r\n });\r\n this.seriesVolumes.forEach(vol => {\r\n vol.volumeFiles = vol.chapters?.sort(this.utilityService.sortChapters).map((c: Chapter) => c.files.map((f: any) => {\r\n f.chapter = c.number;\r\n return f;\r\n })).flat();\r\n });\r\n\r\n if (volumes.length > 0) {\r\n this.size = volumes.reduce((sum1, volume) => {\r\n return sum1 + volume.chapters.reduce((sum2, chapter) => {\r\n return sum2 + chapter.files.reduce((sum3, file) => {\r\n return sum3 + file.bytes;\r\n }, 0);\r\n }, 0);\r\n }, 0);\r\n }\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n\r\n setupTypeaheads() {\r\n forkJoin([\r\n this.setupCollectionTagsSettings(),\r\n this.setupTagSettings(),\r\n this.setupGenreTypeahead(),\r\n this.setupPersonTypeahead(),\r\n this.setupLanguageTypeahead()\r\n ]).subscribe(results => {\r\n this.collectionTags = this.metadata.collectionTags;\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n setupCollectionTagsSettings() {\r\n this.collectionTagSettings.minCharacters = 0;\r\n this.collectionTagSettings.multiple = true;\r\n this.collectionTagSettings.id = 'collections';\r\n this.collectionTagSettings.unique = true;\r\n this.collectionTagSettings.addIfNonExisting = true;\r\n this.collectionTagSettings.fetchFn = (filter: string) => this.fetchCollectionTags(filter).pipe(map(items => this.collectionTagSettings.compareFn(items, filter)));\r\n this.collectionTagSettings.addTransformFn = ((title: string) => {\r\n return {id: 0, title: title, promoted: false, coverImage: '', summary: '', coverImageLocked: false };\r\n });\r\n this.collectionTagSettings.compareFn = (options: CollectionTag[], filter: string) => {\r\n return options.filter(m => this.utilityService.filter(m.title, filter));\r\n }\r\n this.collectionTagSettings.compareFnForAdd = (options: CollectionTag[], filter: string) => {\r\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\r\n }\r\n this.collectionTagSettings.selectionCompareFn = (a: CollectionTag, b: CollectionTag) => {\r\n return a.title === b.title;\r\n }\r\n\r\n if (this.metadata.collectionTags) {\r\n this.collectionTagSettings.savedData = this.metadata.collectionTags;\r\n }\r\n\r\n return of(true);\r\n }\r\n\r\n setupTagSettings() {\r\n this.tagsSettings.minCharacters = 0;\r\n this.tagsSettings.multiple = true;\r\n this.tagsSettings.id = 'tags';\r\n this.tagsSettings.unique = true;\r\n this.tagsSettings.showLocked = true;\r\n this.tagsSettings.addIfNonExisting = true;\r\n\r\n\r\n this.tagsSettings.compareFn = (options: Tag[], filter: string) => {\r\n return options.filter(m => this.utilityService.filter(m.title, filter));\r\n }\r\n this.tagsSettings.fetchFn = (filter: string) => this.metadataService.getAllTags()\r\n .pipe(map(items => this.tagsSettings.compareFn(items, filter)));\r\n\r\n this.tagsSettings.addTransformFn = ((title: string) => {\r\n return {id: 0, title: title };\r\n });\r\n this.tagsSettings.selectionCompareFn = (a: Tag, b: Tag) => {\r\n return a.title.toLowerCase() == b.title.toLowerCase();\r\n }\r\n this.tagsSettings.compareFnForAdd = (options: Tag[], filter: string) => {\r\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\r\n }\r\n\r\n if (this.metadata.tags) {\r\n this.tagsSettings.savedData = this.metadata.tags;\r\n }\r\n return of(true);\r\n }\r\n\r\n setupGenreTypeahead() {\r\n this.genreSettings.minCharacters = 0;\r\n this.genreSettings.multiple = true;\r\n this.genreSettings.id = 'genres';\r\n this.genreSettings.unique = true;\r\n this.genreSettings.showLocked = true;\r\n this.genreSettings.addIfNonExisting = true;\r\n this.genreSettings.fetchFn = (filter: string) => {\r\n return this.metadataService.getAllGenres()\r\n .pipe(map(items => this.genreSettings.compareFn(items, filter)));\r\n };\r\n this.genreSettings.compareFn = (options: Genre[], filter: string) => {\r\n return options.filter(m => this.utilityService.filter(m.title, filter));\r\n }\r\n this.genreSettings.compareFnForAdd = (options: Genre[], filter: string) => {\r\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\r\n }\r\n this.genreSettings.selectionCompareFn = (a: Genre, b: Genre) => {\r\n return a.title.toLowerCase() == b.title.toLowerCase();\r\n }\r\n\r\n this.genreSettings.addTransformFn = ((title: string) => {\r\n return {id: 0, title: title };\r\n });\r\n\r\n if (this.metadata.genres) {\r\n this.genreSettings.savedData = this.metadata.genres;\r\n }\r\n return of(true);\r\n }\r\n\r\n updateFromPreset(id: string, presetField: Array | undefined, role: PersonRole) {\r\n const personSettings = this.createBlankPersonSettings(id, role)\r\n if (presetField && presetField.length > 0) {\r\n const fetch = personSettings.fetchFn as ((filter: string) => Observable);\r\n return fetch('').pipe(map(people => {\r\n const presetIds = presetField.map(p => p.id);\r\n personSettings.savedData = people.filter(person => presetIds.includes(person.id));\r\n this.peopleSettings[role] = personSettings;\r\n this.updatePerson(personSettings.savedData as Person[], role);\r\n return true;\r\n }));\r\n } else {\r\n this.peopleSettings[role] = personSettings;\r\n return of(true);\r\n }\r\n }\r\n\r\n setupLanguageTypeahead() {\r\n this.languageSettings.minCharacters = 0;\r\n this.languageSettings.multiple = false;\r\n this.languageSettings.id = 'language';\r\n this.languageSettings.unique = true;\r\n this.languageSettings.showLocked = true;\r\n this.languageSettings.addIfNonExisting = false;\r\n this.languageSettings.compareFn = (options: Language[], filter: string) => {\r\n return options.filter(m => this.utilityService.filter(m.title, filter));\r\n }\r\n this.languageSettings.compareFnForAdd = (options: Language[], filter: string) => {\r\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\r\n }\r\n this.languageSettings.fetchFn = (filter: string) => of(this.validLanguages)\r\n .pipe(map(items => this.languageSettings.compareFn(items, filter)));\r\n\r\n this.languageSettings.selectionCompareFn = (a: Language, b: Language) => {\r\n return a.isoCode == b.isoCode;\r\n }\r\n\r\n if (this.metadata.language === undefined || this.metadata.language === null || this.metadata.language === '') {\r\n this.metadata.language = 'en';\r\n }\r\n\r\n const l = this.validLanguages.find(l => l.isoCode === this.metadata.language);\r\n if (l !== undefined) {\r\n this.languageSettings.savedData = l;\r\n }\r\n return of(true);\r\n }\r\n\r\n setupPersonTypeahead() {\r\n this.peopleSettings = {};\r\n\r\n return forkJoin([\r\n this.updateFromPreset('writer', this.metadata.writers, PersonRole.Writer),\r\n this.updateFromPreset('character', this.metadata.characters, PersonRole.Character),\r\n this.updateFromPreset('colorist', this.metadata.colorists, PersonRole.Colorist),\r\n this.updateFromPreset('cover-artist', this.metadata.coverArtists, PersonRole.CoverArtist),\r\n this.updateFromPreset('editor', this.metadata.editors, PersonRole.Editor),\r\n this.updateFromPreset('inker', this.metadata.inkers, PersonRole.Inker),\r\n this.updateFromPreset('letterer', this.metadata.letterers, PersonRole.Letterer),\r\n this.updateFromPreset('penciller', this.metadata.pencillers, PersonRole.Penciller),\r\n this.updateFromPreset('publisher', this.metadata.publishers, PersonRole.Publisher),\r\n this.updateFromPreset('translator', this.metadata.translators, PersonRole.Translator)\r\n ]).pipe(map(results => {\r\n return of(true);\r\n }));\r\n }\r\n\r\n fetchPeople(role: PersonRole, filter: string) {\r\n return this.metadataService.getAllPeople().pipe(map(people => {\r\n return people.filter(p => p.role == role && this.utilityService.filter(p.name, filter));\r\n }));\r\n }\r\n\r\n createBlankPersonSettings(id: string, role: PersonRole) {\r\n var personSettings = new TypeaheadSettings();\r\n personSettings.minCharacters = 0;\r\n personSettings.multiple = true;\r\n personSettings.showLocked = true;\r\n personSettings.unique = true;\r\n personSettings.addIfNonExisting = true;\r\n personSettings.id = id;\r\n personSettings.compareFn = (options: Person[], filter: string) => {\r\n return options.filter(m => this.utilityService.filter(m.name, filter));\r\n }\r\n personSettings.compareFnForAdd = (options: Person[], filter: string) => {\r\n return options.filter(m => this.utilityService.filterMatches(m.name, filter));\r\n }\r\n\r\n personSettings.selectionCompareFn = (a: Person, b: Person) => {\r\n return a.name == b.name && a.role == b.role;\r\n }\r\n personSettings.fetchFn = (filter: string) => {\r\n return this.fetchPeople(role, filter).pipe(map(items => personSettings.compareFn(items, filter)));\r\n };\r\n\r\n personSettings.addTransformFn = ((title: string) => {\r\n return {id: 0, name: title, role: role };\r\n });\r\n\r\n return personSettings;\r\n }\r\n\r\n close() {\r\n this.modal.close({success: false, series: undefined, coverImageUpdate: this.coverImageReset});\r\n }\r\n\r\n fetchCollectionTags(filter: string = '') {\r\n return this.collectionService.search(filter);\r\n }\r\n\r\n updateWeblinks(items: Array) {\r\n this.metadata.webLinks = items.map(s => s.replaceAll(',', '%2C')).join(',');\r\n }\r\n\r\n\r\n save() {\r\n const model = this.editSeriesForm.value;\r\n const selectedIndex = this.editSeriesForm.get('coverImageIndex')?.value || 0;\r\n\r\n const apis = [\r\n this.seriesService.updateMetadata(this.metadata, this.collectionTags)\r\n ];\r\n\r\n // We only need to call updateSeries if we changed name, sort name, or localized name or reset a cover image\r\n const nameFieldsDirty = this.editSeriesForm.get('name')?.dirty || this.editSeriesForm.get('sortName')?.dirty || this.editSeriesForm.get('localizedName')?.dirty;\r\n const nameFieldLockChanged = this.series.nameLocked !== this.initSeries.nameLocked || this.series.sortNameLocked !== this.initSeries.sortNameLocked || this.series.localizedNameLocked !== this.initSeries.localizedNameLocked;\r\n if (nameFieldsDirty || nameFieldLockChanged || this.coverImageReset) {\r\n model.nameLocked = this.series.nameLocked;\r\n model.sortNameLocked = this.series.sortNameLocked;\r\n model.localizedNameLocked = this.series.localizedNameLocked;\r\n model.language = this.metadata.language;\r\n apis.push(this.seriesService.updateSeries(model));\r\n }\r\n\r\n\r\n if (selectedIndex > 0 && this.selectedCover !== '') {\r\n apis.push(this.uploadService.updateSeriesCoverImage(model.id, this.selectedCover));\r\n }\r\n\r\n this.saveNestedComponents.emit();\r\n\r\n forkJoin(apis).subscribe(results => {\r\n this.modal.close({success: true, series: model, coverImageUpdate: selectedIndex > 0 || this.coverImageReset});\r\n });\r\n }\r\n\r\n updateCollections(tags: CollectionTag[]) {\r\n this.collectionTags = tags;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateTags(tags: Tag[]) {\r\n this.tags = tags;\r\n this.metadata.tags = tags;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateGenres(genres: Genre[]) {\r\n this.genres = genres;\r\n this.metadata.genres = genres;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateLanguage(language: Array) {\r\n if (language.length === 0) {\r\n this.metadata.language = '';\r\n return;\r\n }\r\n this.metadata.language = language[0].isoCode;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updatePerson(persons: Person[], role: PersonRole) {\r\n switch (role) {\r\n case PersonRole.CoverArtist:\r\n this.metadata.coverArtists = persons;\r\n break;\r\n case PersonRole.Character:\r\n this.metadata.characters = persons;\r\n break;\r\n case PersonRole.Colorist:\r\n this.metadata.colorists = persons;\r\n break;\r\n case PersonRole.Editor:\r\n this.metadata.editors = persons;\r\n break;\r\n case PersonRole.Inker:\r\n this.metadata.inkers = persons;\r\n break;\r\n case PersonRole.Letterer:\r\n this.metadata.letterers = persons;\r\n break;\r\n case PersonRole.Penciller:\r\n this.metadata.pencillers = persons;\r\n break;\r\n case PersonRole.Publisher:\r\n this.metadata.publishers = persons;\r\n break;\r\n case PersonRole.Writer:\r\n this.metadata.writers = persons;\r\n break;\r\n case PersonRole.Translator:\r\n this.metadata.translators = persons;\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateSelectedIndex(index: number) {\r\n this.editSeriesForm.patchValue({\r\n coverImageIndex: index\r\n });\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateSelectedImage(url: string) {\r\n this.selectedCover = url;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n handleReset() {\r\n this.coverImageReset = true;\r\n this.editSeriesForm.patchValue({\r\n coverImageLocked: false\r\n });\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n unlock(b: any, field: string) {\r\n if (b) {\r\n b[field] = !b[field];\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

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

\r\n \r\n
\r\n
\r\n
\r\n
    \r\n\r\n
  • \r\n {{t(tabs[TabID.General])}}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n {{t('required-field')}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n {{t('required-field')}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
  • \r\n\r\n
  • \r\n {{t(tabs[TabID.Metadata])}}\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n

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

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.title}}\r\n \r\n \r\n {{item.title}} ({{item.isoCode}})\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
  • \r\n\r\n
  • \r\n {{t(tabs[TabID.People])}}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
  • \r\n\r\n
  • \r\n {{t(tabs[TabID.WebLinks])}}\r\n \r\n

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

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

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

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

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

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

    Volumes

    \r\n
    \r\n {{t('loading')}}\r\n
    \r\n
      \r\n
    • \r\n \r\n
      \r\n
      {{t('volume-num')}} {{volume.name}}
      \r\n
      \r\n
      \r\n
      \r\n {{t('added-title')}} {{volume.createdUtc | utcToLocalTime | defaultDate}}\r\n
      \r\n
      \r\n {{t('last-modified-title')}} {{volume.lastModifiedUtc | utcToLocalTime | translocoDate: {dateStyle: 'short' } | defaultDate}}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {{t('pages-title')}} {{volume.pages}}\r\n
      \r\n
      \r\n\r\n
      \r\n
        \r\n
      • \r\n {{file.filePath}}\r\n
        \r\n
        \r\n {{t('chapter-title')}} {{file.chapter}}\r\n
        \r\n
        \r\n {{t('pages-title')}} {{file.pages}}\r\n
        \r\n
        \r\n {{t('format-title')}} {{utilityService.mangaFormatToText(file.format)}}\r\n
        \r\n
        \r\n
      • \r\n
      \r\n
      \r\n
      \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n {{t('field-locked-alt')}}\r\n \r\n \r\n\r\n\r\n
\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal, NgbTypeahead, NgbHighlight } from '@ng-bootstrap/ng-bootstrap';\r\nimport { catchError, debounceTime, distinctUntilChanged, filter, map, merge, Observable, of, OperatorFunction, Subject, switchMap, tap } from 'rxjs';\r\nimport { Stack } from 'src/app/shared/data-structures/stack';\r\nimport { DirectoryDto } from 'src/app/_models/system/directory-dto';\r\nimport { LibraryService } from '../../../_services/library.service';\r\nimport { NgIf, NgFor, NgClass } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport {TranslocoDirective} from \"@ngneat/transloco\";\r\n\r\n\r\nexport interface DirectoryPickerResult {\r\n success: boolean;\r\n folderPath: string;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-directory-picker',\r\n templateUrl: './directory-picker.component.html',\r\n styleUrls: ['./directory-picker.component.scss'],\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgbTypeahead, FormsModule, NgbHighlight, NgIf, NgFor, NgClass, TranslocoDirective]\r\n})\r\nexport class DirectoryPickerComponent implements OnInit {\r\n\r\n @Input() startingFolder: string = '';\r\n /**\r\n * Url to give more information about selecting directories. Passing nothing will suppress.\r\n */\r\n @Input() helpUrl: string = 'https://wiki.kavitareader.com/en/guides/first-time-setup#adding-a-library-to-kavita';\r\n\r\n currentRoot = '';\r\n folders: DirectoryDto[] = [];\r\n routeStack: Stack = new Stack();\r\n\r\n\r\n path: string = '';\r\n @ViewChild('instance', {static: false}) instance!: NgbTypeahead;\r\n focus$ = new Subject();\r\n click$ = new Subject();\r\n searching: boolean = false;\r\n searchFailed: boolean = false;\r\n\r\n\r\n search: OperatorFunction = (text$: Observable) => {\r\n const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());\r\n const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));\r\n const inputFocus$ = this.focus$;\r\n\r\n return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$, text$).pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n tap(() => this.searching = true),\r\n switchMap(term =>\r\n this.libraryService.listDirectories(this.path).pipe(\r\n tap(() => this.searchFailed = false),\r\n tap((folders) => this.folders = folders),\r\n map(folders => folders.map(f => f.fullPath)),\r\n catchError(() => {\r\n this.searchFailed = true;\r\n return of([]);\r\n }))\r\n ),\r\n tap(() => this.searching = false)\r\n )\r\n }\r\n\r\n constructor(public modal: NgbActiveModal, private libraryService: LibraryService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.startingFolder && this.startingFolder.length > 0) {\r\n let folders = this.startingFolder.split('/');\r\n let folders2 = this.startingFolder.split('\\\\');\r\n if (folders.length === 1 && folders2.length > 1) {\r\n folders = folders2;\r\n }\r\n if (!folders[0].endsWith('/')) {\r\n folders[0] = folders[0] + '/';\r\n }\r\n folders.forEach(folder => this.routeStack.push(folder));\r\n\r\n const fullPath = this.routeStack.items.join('/');\r\n this.loadChildren(fullPath);\r\n } else {\r\n this.loadChildren(this.currentRoot);\r\n }\r\n }\r\n\r\n updateTable() {\r\n this.loadChildren(this.path);\r\n }\r\n\r\n\r\n selectNode(folder: DirectoryDto) {\r\n if (folder.disabled) return;\r\n this.currentRoot = folder.name;\r\n this.routeStack.push(folder.name);\r\n this.path = folder.fullPath;\r\n this.loadChildren(this.path);\r\n }\r\n\r\n goBack() {\r\n this.routeStack.pop();\r\n const stackPeek = this.routeStack.peek();\r\n if (stackPeek !== undefined) {\r\n this.currentRoot = stackPeek;\r\n const fullPath = this.routeStack.items.join('/');\r\n this.loadChildren(fullPath);\r\n } else {\r\n this.currentRoot = '';\r\n this.loadChildren(this.currentRoot);\r\n }\r\n }\r\n\r\n loadChildren(path: string) {\r\n this.libraryService.listDirectories(path).subscribe(folders => {\r\n this.folders = folders;\r\n }, err => {\r\n // If there was an error, pop off last directory added to stack\r\n this.routeStack.pop();\r\n const item = this.folders.find(f => f.fullPath === path);\r\n if (item) {\r\n item.disabled = true;\r\n }\r\n });\r\n }\r\n\r\n shareFolder(fullPath: string, event: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n this.modal.close({success: true, folderPath: fullPath});\r\n }\r\n\r\n share() {\r\n this.modal.close({success: true, folderPath: this.path});\r\n }\r\n\r\n close() {\r\n this.modal.close({success: false, folderPath: undefined});\r\n }\r\n\r\n getStem(path: string): string {\r\n\r\n const lastPath = this.routeStack.peek();\r\n if (lastPath && lastPath != path) {\r\n let replaced = path.replace(lastPath, '');\r\n if (replaced.startsWith('/') || replaced.startsWith('\\\\')) {\r\n replaced = replaced.substring(1, replaced.length);\r\n }\r\n return replaced;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n navigateTo(index: number) {\r\n while(this.routeStack.items.length - 1 > index) {\r\n this.routeStack.pop();\r\n }\r\n\r\n const fullPath = this.routeStack.items.join('/');\r\n this.path = fullPath;\r\n this.loadChildren(fullPath);\r\n }\r\n}\r\n\r\n\r\n","\r\n
\r\n

{{t('title')}}

\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{t('type-header')}}{{t('name-header')}}
...
\r\n {{folder.name}}\r\n
\r\n
\r\n \r\n\r\n
\r\n","export enum FileTypeGroup {\r\n Archive = 1,\r\n Epub = 2,\r\n Pdf = 3,\r\n Images = 4\r\n}\r\n\r\nexport const allFileTypeGroup = Object.keys(FileTypeGroup)\r\n.filter(key => !isNaN(Number(key)) && parseInt(key, 10) >= 0)\r\n.map(key => parseInt(key, 10)) as FileTypeGroup[];\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {FileTypeGroup} from \"../_models/library/file-type-group.enum\";\r\nimport {translate} from \"@ngneat/transloco\";\r\n\r\n@Pipe({\r\n name: 'fileTypeGroup',\r\n standalone: true\r\n})\r\nexport class FileTypeGroupPipe implements PipeTransform {\r\n\r\n transform(value: FileTypeGroup): string {\r\n switch (value) {\r\n case FileTypeGroup.Archive:\r\n return translate('file-type-group-pipe.archive');\r\n case FileTypeGroup.Epub:\r\n return translate('file-type-group-pipe.epub');\r\n case FileTypeGroup.Pdf:\r\n return translate('file-type-group-pipe.pdf');\r\n case FileTypeGroup.Images:\r\n return translate('file-type-group-pipe.image');\r\n\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n inject,\r\n Input,\r\n OnInit\r\n} from '@angular/core';\r\nimport {FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\r\nimport {\r\n NgbAccordionBody,\r\n NgbAccordionButton, NgbAccordionCollapse,\r\n NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem,\r\n NgbActiveModal,\r\n NgbModal,\r\n NgbModalModule,\r\n NgbNav,\r\n NgbNavContent,\r\n NgbNavItem,\r\n NgbNavLink,\r\n NgbNavOutlet,\r\n NgbTooltip\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {debounceTime, distinctUntilChanged, switchMap, tap} from 'rxjs';\r\nimport {SettingsService} from 'src/app/admin/settings.service';\r\nimport {\r\n DirectoryPickerComponent,\r\n DirectoryPickerResult\r\n} from 'src/app/admin/_modals/directory-picker/directory-picker.component';\r\nimport {ConfirmService} from 'src/app/shared/confirm.service';\r\nimport {Breakpoint, UtilityService} from 'src/app/shared/_services/utility.service';\r\nimport {Library, LibraryType} from 'src/app/_models/library/library';\r\nimport {ImageService} from 'src/app/_services/image.service';\r\nimport {LibraryService} from 'src/app/_services/library.service';\r\nimport {UploadService} from 'src/app/_services/upload.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\r\nimport {CoverImageChooserComponent} from \"../../../cards/cover-image-chooser/cover-image-chooser.component\";\r\nimport {translate, TranslocoModule} from \"@ngneat/transloco\";\r\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\r\nimport {allFileTypeGroup, FileTypeGroup} from \"../../../_models/library/file-type-group.enum\";\r\nimport {FileTypeGroupPipe} from \"../../../_pipes/file-type-group.pipe\";\r\nimport {EditListComponent} from \"../../../shared/edit-list/edit-list.component\";\r\n\r\nenum TabID {\r\n General = 'general-tab',\r\n Folder = 'folder-tab',\r\n Cover = 'cover-tab',\r\n Advanced = 'advanced-tab'\r\n}\r\n\r\nenum StepID {\r\n General = 0,\r\n Folder = 1,\r\n Cover = 2,\r\n Advanced = 3\r\n}\r\n\r\n@Component({\r\n selector: 'app-library-settings-modal',\r\n standalone: true,\r\n imports: [CommonModule, NgbModalModule, NgbNavLink, NgbNavItem, NgbNavContent, ReactiveFormsModule, NgbTooltip,\r\n SentenceCasePipe, NgbNav, NgbNavOutlet, CoverImageChooserComponent, TranslocoModule, DefaultDatePipe,\r\n FileTypeGroupPipe, NgbAccordionDirective, NgbAccordionItem, NgbAccordionHeader, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionBody, EditListComponent],\r\n templateUrl: './library-settings-modal.component.html',\r\n styleUrls: ['./library-settings-modal.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibrarySettingsModalComponent implements OnInit {\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n @Input({required: true}) library!: Library;\r\n\r\n active = TabID.General;\r\n imageUrls: Array = [];\r\n\r\n libraryForm: FormGroup = new FormGroup({\r\n name: new FormControl('', { nonNullable: true, validators: [Validators.required] }),\r\n type: new FormControl(LibraryType.Manga, { nonNullable: true, validators: [Validators.required] }),\r\n folderWatching: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n includeInDashboard: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n includeInRecommended: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n includeInSearch: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n manageCollections: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n manageReadingLists: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n allowScrobbling: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\r\n collapseSeriesRelationships: new FormControl(false, { nonNullable: true, validators: [Validators.required] }),\r\n });\r\n\r\n selectedFolders: string[] = [];\r\n madeChanges = false;\r\n libraryTypes: string[] = []\r\n\r\n isAddLibrary = false;\r\n setupStep = StepID.General;\r\n fileTypeGroups = allFileTypeGroup;\r\n excludePatterns: Array = [''];\r\n\r\n protected readonly Breakpoint = Breakpoint;\r\n protected readonly TabID = TabID;\r\n\r\n\r\n constructor(public utilityService: UtilityService, private uploadService: UploadService, private modalService: NgbModal,\r\n private settingService: SettingsService, public modal: NgbActiveModal, private confirmService: ConfirmService,\r\n private libraryService: LibraryService, private toastr: ToastrService, private readonly cdRef: ChangeDetectorRef,\r\n private imageService: ImageService) { }\r\n\r\n ngOnInit(): void {\r\n this.settingService.getLibraryTypes().subscribe((types) => {\r\n this.libraryTypes = types;\r\n this.cdRef.markForCheck();\r\n });\r\n\r\n if (this.library === undefined) {\r\n this.isAddLibrary = true;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n if (this.library?.coverImage != null && this.library?.coverImage !== '') {\r\n this.imageUrls.push(this.imageService.getLibraryCoverImage(this.library.id));\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n if (this.library && this.library.type === LibraryType.Comic) {\r\n this.libraryForm.get('allowScrobbling')?.setValue(false);\r\n this.libraryForm.get('allowScrobbling')?.disable();\r\n }\r\n\r\n this.libraryForm.get('name')?.valueChanges.pipe(\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n switchMap(name => this.libraryService.libraryNameExists(name)),\r\n tap(exists => {\r\n const isExistingName = this.libraryForm.get('name')?.value === this.library?.name;\r\n if (!exists || isExistingName) {\r\n this.libraryForm.get('name')?.setErrors(null);\r\n } else {\r\n this.libraryForm.get('name')?.setErrors({duplicateName: true})\r\n }\r\n this.cdRef.markForCheck();\r\n }),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe();\r\n\r\n\r\n this.setValues();\r\n\r\n // This needs to only apply after first render\r\n this.libraryForm.get('type')?.valueChanges.pipe(\r\n tap((type: LibraryType) => {\r\n const libType = parseInt(type + '', 10) as LibraryType;\r\n switch (libType) {\r\n case LibraryType.Manga:\r\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(true);\r\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(true);\r\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\r\n break;\r\n case LibraryType.Comic:\r\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(true);\r\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\r\n break;\r\n case LibraryType.Book:\r\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(true);\r\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(true);\r\n break;\r\n case LibraryType.Images:\r\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(true);\r\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\r\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\r\n break;\r\n }\r\n }),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe();\r\n }\r\n\r\n setValues() {\r\n if (this.library !== undefined) {\r\n this.libraryForm.get('name')?.setValue(this.library.name);\r\n this.libraryForm.get('type')?.setValue(this.library.type);\r\n this.libraryForm.get('folderWatching')?.setValue(this.library.folderWatching);\r\n this.libraryForm.get('includeInDashboard')?.setValue(this.library.includeInDashboard);\r\n this.libraryForm.get('includeInRecommended')?.setValue(this.library.includeInRecommended);\r\n this.libraryForm.get('includeInSearch')?.setValue(this.library.includeInSearch);\r\n this.libraryForm.get('manageCollections')?.setValue(this.library.manageCollections);\r\n this.libraryForm.get('manageReadingLists')?.setValue(this.library.manageReadingLists);\r\n this.libraryForm.get('collapseSeriesRelationships')?.setValue(this.library.collapseSeriesRelationships);\r\n this.libraryForm.get('allowScrobbling')?.setValue(this.library.allowScrobbling);\r\n this.selectedFolders = this.library.folders;\r\n this.madeChanges = false;\r\n for(let fileTypeGroup of allFileTypeGroup) {\r\n this.libraryForm.addControl(fileTypeGroup + '', new FormControl(this.library.libraryFileTypes.includes(fileTypeGroup), []));\r\n }\r\n for(let glob of this.library.excludePatterns) {\r\n this.libraryForm.addControl('excludeGlob-' , new FormControl(glob, []));\r\n }\r\n this.excludePatterns = this.library.excludePatterns;\r\n } else {\r\n for(let fileTypeGroup of allFileTypeGroup) {\r\n this.libraryForm.addControl(fileTypeGroup + '', new FormControl(true, []));\r\n }\r\n }\r\n\r\n if (this.excludePatterns.length === 0) {\r\n this.excludePatterns = [''];\r\n }\r\n\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n updateGlobs(items: Array) {\r\n this.excludePatterns = items;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n isDisabled() {\r\n return !(this.libraryForm.valid && this.selectedFolders.length > 0);\r\n }\r\n\r\n reset() {\r\n this.setValues();\r\n }\r\n\r\n close(returnVal= false) {\r\n this.modal.close(returnVal);\r\n }\r\n\r\n forceScan() {\r\n this.libraryService.scan(this.library.id, true)\r\n .subscribe(() => this.toastr.info(translate('toasts.forced-scan-queued', {name: this.library.name})));\r\n }\r\n\r\n async save() {\r\n const model = this.libraryForm.value;\r\n model.folders = this.selectedFolders;\r\n model.fileGroupTypes = [];\r\n for(let fileTypeGroup of allFileTypeGroup) {\r\n if (model[fileTypeGroup]) {\r\n model.fileGroupTypes.push(fileTypeGroup);\r\n }\r\n }\r\n model.excludePatterns = this.excludePatterns;\r\n\r\n if (this.libraryForm.errors) {\r\n return;\r\n }\r\n\r\n if (this.library !== undefined) {\r\n model.id = this.library.id;\r\n model.folders = model.folders.map((item: string) => item.startsWith('\\\\') ? item.substr(1, item.length) : item);\r\n model.type = parseInt(model.type, 10);\r\n\r\n if (model.type !== this.library.type) {\r\n if (!await this.confirmService.confirm(translate('toasts.confirm-library-type-change'))) return;\r\n }\r\n\r\n this.libraryService.update(model).subscribe(() => {\r\n this.close(true);\r\n });\r\n } else {\r\n model.folders = model.folders.map((item: string) => item.startsWith('\\\\') ? item.substr(1, item.length) : item);\r\n model.type = parseInt(model.type, 10);\r\n this.libraryService.create(model).subscribe(() => {\r\n this.toastr.success(translate('toasts.library-created'));\r\n this.close(true);\r\n });\r\n }\r\n }\r\n\r\n nextStep() {\r\n this.setupStep++;\r\n switch(this.setupStep) {\r\n case StepID.Folder:\r\n this.active = TabID.Folder;\r\n break;\r\n case StepID.Cover:\r\n this.active = TabID.Cover;\r\n break;\r\n case StepID.Advanced:\r\n this.active = TabID.Advanced;\r\n break;\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n applyCoverImage(coverUrl: string) {\r\n this.uploadService.updateLibraryCoverImage(this.library.id, coverUrl).subscribe(() => {});\r\n }\r\n\r\n updateCoverImageIndex(selectedIndex: number) {\r\n if (selectedIndex <= 0) return;\r\n this.applyCoverImage(this.imageUrls[selectedIndex]);\r\n }\r\n\r\n resetCoverImage() {\r\n this.uploadService.updateLibraryCoverImage(this.library.id, '').subscribe(() => {});\r\n }\r\n\r\n openDirectoryPicker() {\r\n const modalRef = this.modalService.open(DirectoryPickerComponent, { scrollable: true, size: 'lg' });\r\n modalRef.closed.subscribe((closeResult: DirectoryPickerResult) => {\r\n if (closeResult.success) {\r\n if (!this.selectedFolders.includes(closeResult.folderPath)) {\r\n this.selectedFolders.push(closeResult.folderPath);\r\n this.madeChanges = true;\r\n this.cdRef.markForCheck();\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeFolder(folder: string) {\r\n this.selectedFolders = this.selectedFolders.filter(item => item !== folder);\r\n this.madeChanges = true;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n isNextDisabled() {\r\n switch (this.setupStep) {\r\n case StepID.General:\r\n return this.libraryForm.get('name')?.invalid || this.libraryForm.get('type')?.invalid;\r\n case StepID.Folder:\r\n return this.selectedFolders.length === 0;\r\n case StepID.Cover:\r\n return false; // Covers are optional\r\n case StepID.Advanced:\r\n return false; // Advanced are optional\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n

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

\r\n \r\n
\r\n
\r\n
\r\n
    \r\n\r\n
  • \r\n {{t(TabID.General)}}\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{t('required-field')}}\r\n
    \r\n
    \r\n {{t('library-name-unique')}}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {{t('type-tooltip')}}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {{t('last-scanned-label')}}\r\n {{library.lastScanned | date: 'short' | defaultDate}}\r\n
    \r\n
    \r\n
  • \r\n\r\n\r\n
  • \r\n {{t(TabID.Folder)}}\r\n \r\n

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

    \r\n
      \r\n
    • \r\n {{folder}}\r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n
  • \r\n\r\n
  • \r\n {{t(TabID.Cover)}}\r\n \r\n

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

    \r\n

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

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

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

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n \r\n {{t('exclude-patterns-tooltip')}}{{t('help')}}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

    \r\n {{t('manage-collection-tooltip')}}\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n"],"mappings":"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","names":["RelationKind","RelationKindsUnsorted","text","value","Prequel","Sequel","SpinOff","Adaptation","AlternativeSetting","AlternativeVersion","SideStory","Character","Contains","Edition","Doujinshi","Other","RelationKinds","slice","sort","a","b","localeCompare","TypeaheadSettings","constructor","debounce","multiple","id","showLocked","minCharacters","unique","addIfNonExisting","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","_c0","NgxFileDropComponent_ng_template_4_div_0_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r4","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","NgxFileDropComponent_ng_template_4_div_1_Template","_r7","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ctx_r6","ɵɵresetView","ctx_r5","ɵɵpropertyInterpolate","ɵɵproperty","NgxFileDropComponent_ng_template_4_Template","ɵɵtemplate","ctx_r1","NgxFileDropComponent_ng_template_6_Template","_c1","a0","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","ɵɵtemplateRefExtractor","_r2","ɵɵreference","ɵɵclassProp","ɵɵattribute","ɵɵpureFunction1","NgIf","NgTemplateOutlet","NgxFileDropModule","_NgxFileDropModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r10","ctx_r9","ɵɵnextContext","ɵɵresetView","changeMode","ɵɵtext","openFileSelector_r6","openFileSelector","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵpureFunction0","_c0","ɵɵtextInterpolate1","ɵɵelementContainerStart","_r15","ctx_r14","loadImageFromUrl","mode","ctx_r16","ɵɵelementContainerEnd","ɵɵproperty","tmp_1_0","ctx_r8","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","ctx_r2","_r20","ctx_r19","resetImage","_r23","ctx_r22","reset","CoverImageChooserComponent_ng_container_0_div_7_ng_container_2_Template","ɵɵpureFunction1","_c1","ctx_r4","showApplyButton","selectedIndex","imageService","resetCoverImage","_r30","idx_r26","index","ctx_r28","applyImage","ctx_r27","appliedIndex","_r34","ctx_r33","selectImage","CoverImageChooserComponent_ng_container_0_div_8_ng_container_2_Template","ctx_r5","ɵɵattribute","_c2","url_r25","$event","_r37","ctx_r36","dropped","ctx_r38","fileOver","ctx_r39","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","ctx_r0","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","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","pure","standalone","_RelationshipPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵtextInterpolate2","item_r13","name","ctx_r8","libraryNames","libraryId","item_r15","ctx_r10","ɵɵproperty","opt_r17","value","ɵɵpipeBind1","ɵɵlistener","$event","relation_r5","ɵɵrestoreView","_r19","$implicit","ctx_r18","ɵɵ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_r6","index","ctx_r20","removeRelation","ɵɵelement","ɵɵpropertyInterpolate1","typeaheadSettings","ctx_r3","focusTypeahead","formControl","RelationKind","Parent","relationOptions","ɵɵelementContainerStart","EditSeriesRelationComponent_ng_container_0_div_6_Template","EditSeriesRelationComponent_ng_container_0_div_8_Template","_r23","ctx_r22","addNewRelation","ɵɵelementContainerEnd","ɵɵtextInterpolate1","ctx_r0","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","__async","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","detectChanges","getLibraryNames","names","markForCheck","pipe","takeUntilDestroyed","saveState","kind","map","item","indx","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","styles","changeDetection","_EditSeriesRelationComponent","DefaultDatePipe","constructor","translocoService","transform","value","replacementString","Infinity","Number","isNaN","translate","ɵɵdirectiveInject","TranslocoService","pure","standalone","_DefaultDatePipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r9","ctx_r8","ɵɵnextContext","ɵɵresetView","add","i_r4","$index","ctx_r10","remove","ɵɵadvance","ɵɵpropertyInterpolate1","ɵɵtextInterpolate","ctx_r2","label","t_r1","ɵɵrepeaterCreate","EditListComponent_form_0_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵproperty","ctx_r0","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","tokens","tokenToRemove","filter","t","key","value","Object","entries","controls","startsWith","get","removeControl","emitEvent","keys","map","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","styles","changeDetection","_EditListComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r1","ɵɵelementContainerStart","ɵɵtemplate","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_6_div_1_Template","ɵɵelementContainerEnd","ɵɵproperty","errors_r16","required","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_14_div_1_Template","errors_r19","ɵɵelementContainer","ɵɵelement","ɵɵtextInterpolate","ɵɵclassMapInterpolate1","ctx_r15","metadata","summaryLocked","_r4","ɵɵpureFunction1","_c0","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_1_0","ctx_r6","editSeriesForm","get","invalid","touched","tmp_2_0","errors","series","sortNameLocked","tmp_5_0","_c1","tmp_8_0","localizedNameLocked","_c2","item_r44","title","item_r46","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_container_17_p_1_Template","errors_r48","pattern","item_r50","item_r52","item_r54","item_r56","item_r58","ɵɵtextInterpolate2","item_r60","isoCode","opt_r62","value","ɵɵpipeBind1","opt_r63","ɵɵlistener","$event","ɵɵrestoreView","_r65","ctx_r64","ɵɵnextContext","ɵɵresetView","updateCollections","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","ctx_r66","updateGenres","genresLocked","ctx_r67","ctx_r68","ctx_r69","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","ctx_r70","updateTags","tagsLocked","ctx_r71","ctx_r72","ctx_r73","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","ctx_r74","updateLanguage","languageLocked","ctx_r75","ctx_r76","ctx_r77","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_44_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_46_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_option_55_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_option_63_Template","ctx_r24","collectionTagSettings","releaseYearLocked","_c3","tmp_7_0","genreSettings","tagsSettings","languageSettings","ageRatingLocked","_c4","ageRatings","publicationStatusLocked","_c5","publicationStatuses","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_Template","ctx_r7","tabs","TabID","Metadata","item_r120","name","item_r122","item_r124","item_r126","item_r128","item_r130","item_r132","item_r134","item_r136","item_r138","item_r140","item_r142","item_r144","item_r146","item_r148","item_r150","item_r152","item_r154","item_r156","item_r158","_r161","ctx_r160","updatePerson","PersonRole","Writer","writerLocked","ctx_r162","ctx_r163","ctx_r164","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","ctx_r165","CoverArtist","coverArtistLocked","ctx_r166","ctx_r167","ctx_r168","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","ctx_r169","Publisher","publisherLocked","ctx_r170","ctx_r171","ctx_r172","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","ctx_r173","Penciller","pencillerLocked","ctx_r174","ctx_r175","ctx_r176","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","ctx_r177","Letterer","lettererLocked","ctx_r178","ctx_r179","ctx_r180","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","ctx_r181","Inker","inkerLocked","ctx_r182","ctx_r183","ctx_r184","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","ctx_r185","Editor","editorLocked","ctx_r186","ctx_r187","ctx_r188","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","ctx_r189","Colorist","coloristLocked","ctx_r190","ctx_r191","ctx_r192","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","ctx_r193","Character","characterLocked","ctx_r194","ctx_r195","ctx_r196","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","ctx_r197","Translator","translatorLocked","ctx_r198","ctx_r199","ctx_r200","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","ctx_r8","getPersonsSettings","_r204","ctx_r203","updateWeblinks","ctx_r202","WebLinks","EditSeriesModalComponent_ng_container_0_div_1_li_18_ng_template_3_Template","ctx_r9","_r208","ctx_r207","imageUrls","ctx_r209","updateSelectedIndex","ctx_r210","updateSelectedImage","ctx_r211","handleReset","ctx_r10","coverImageLocked","ctx_r11","saveNestedComponents","ctx_r213","libraryName","ctx_r214","maxCount","totalCount","publicationStatus","pages","size","file_r224","filePath","chapter","ctx_r223","utilityService","mangaFormatToText","format","_r227","_r222","ɵɵreference","toggle","volume_r221","$implicit","ctx_r228","volumeCollapsed","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_li_1_li_25_Template","ctx_r220","imageService","getVolumeCoverImage","id","createdUtc","ɵɵpipeBind2","lastModifiedUtc","ɵɵpureFunction0","_c6","ɵɵattribute","volumeFiles","sort","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_li_1_Template","ctx_r216","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","ctx_r12","created","latestReadDate","lastChapterAdded","lastFolderScanned","folderPath","isLoadingVolumes","_r232","ctx_r231","close","ctx_r233","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","ctx_r234","ctx_r235","save","_c7","ctx_r2","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","General","People","CoverImage","Related","Info","_r5","valid","restoredCtx","_r240","item_r237","item","field_r238","field","ctx_r239","unlock","EditSeriesModalComponent_ng_container_0_div_1_Template","EditSeriesModalComponent_ng_container_0_ng_template_2_Template","ctx_r0","undefined","EditSeriesModalComponent","constructor","modal","inject","NgbActiveModal","seriesService","SeriesService","UtilityService","fb","FormBuilder","ImageService","libraryService","LibraryService","collectionService","CollectionTagService","uploadService","UploadService","metadataService","MetadataService","cdRef","ChangeDetectorRef","destroyRef","DestroyRef","TypeaheadSettings","peopleSettings","collectionTags","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","sortChapters","files","f","number","flat","reduce","sum1","volume","sum2","sum3","file","bytes","forkJoin","setupCollectionTagsSettings","setupTagSettings","setupGenreTypeahead","setupPersonTypeahead","setupLanguageTypeahead","results","minCharacters","multiple","unique","addIfNonExisting","fetchFn","filter","fetchCollectionTags","items","compareFn","addTransformFn","promoted","coverImage","options","m","compareFnForAdd","filterMatches","selectionCompareFn","a","b","savedData","of","showLocked","getAllTags","toLowerCase","getAllGenres","updateFromPreset","presetField","personSettings","createBlankPersonSettings","fetch","people","presetIds","p","person","includes","l","find","writers","characters","colorists","coverArtists","editors","inkers","letterers","pencillers","publishers","translators","fetchPeople","getAllPeople","success","coverImageUpdate","search","s","replaceAll","join","model","selectedIndex","apis","updateMetadata","nameFieldsDirty","dirty","nameFieldLockChanged","updateSeries","updateSeriesCoverImage","emit","persons","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","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","ɵɵelement","ɵɵproperty","r_r10","t_r11","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ɵɵadvance","ɵɵtextInterpolate1","route_r13","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r22","index_r14","ɵɵnextContext","index","ctx_r20","ɵɵ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","ctx_r12","routeStack","peek","last_r15","_r18","DirectoryPickerComponent_ng_container_0_ol_15_li_1_Template","ctx_r5","items","t_r1","folder_r25","_r28","$implicit","ctx_r27","selectNode","ɵɵpureFunction1","_c1","disabled","ɵɵpropertyInterpolate1","idx_r26","name","ɵɵpropertyInterpolate","ctx_r9","helpUrl","ɵɵsanitizeUrl","_r31","ctx_r30","close","$event","ctx_r32","path","ctx_r33","focus$","next","target","value","ctx_r34","click$","ctx_r35","updateTable","DirectoryPickerComponent_ng_container_0_ng_template_12_Template","DirectoryPickerComponent_ng_container_0_ol_15_Template","DirectoryPickerComponent_ng_container_0_ng_template_16_Template","ctx_r36","goBack","DirectoryPickerComponent_ng_container_0_tr_31_Template","DirectoryPickerComponent_ng_container_0_a_33_Template","ctx_r37","ctx_r38","share","ɵɵattribute","ctx_r0","search","_r4","undefined","_r7","folders","length","DirectoryPickerComponent","constructor","modal","libraryService","startingFolder","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","shareFolder","event","preventDefault","stopPropagation","success","folderPath","getStem","lastPath","replaced","replace","startsWith","substring","ɵɵ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","FileTypeGroup","allFileTypeGroup","Object","keys","filter","key","isNaN","Number","parseInt","map","FileTypeGroupPipe","transform","value","FileTypeGroup","Archive","translate","Epub","Pdf","Images","pure","standalone","_FileTypeGroupPipe","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r1","ɵɵ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_0_0","ctx_r15","libraryForm","get","errors","required","tmp_1_0","duplicateName","ɵɵtextInterpolate","i_r26","opt_r25","ɵɵpipeBind2","ctx_r19","lastScanned","ɵɵelement","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_ng_template_9_Template","ɵɵtemplateRefExtractor","ɵɵelementContainer","LibrarySettingsModalComponent_ng_container_0_ng_template_14_option_14_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_15_Template","ɵɵclassProp","ctx_r6","invalid","touched","dirty","_r17","libraryTypes","isAddLibrary","ɵɵlistener","folder_r30","ɵɵrestoreView","_r33","$implicit","ctx_r32","ɵɵnextContext","ɵɵresetView","removeFolder","LibrarySettingsModalComponent_ng_container_0_ng_template_18_li_3_Template","_r35","ctx_r34","openDirectoryPicker","ctx_r7","selectedFolders","LibrarySettingsModalComponent_ng_container_0_ng_template_22_p_0_Template","$event","_r40","ctx_r39","imageUrls","ctx_r41","updateCoverImageIndex","ctx_r42","applyCoverImage","ctx_r43","resetCoverImage","ctx_r8","coverImage","group_r47","_r50","ctx_r49","updateGlobs","ctx_r46","excludePatterns","LibrarySettingsModalComponent_ng_container_0_ng_template_26_div_8_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_26_ng_template_18_Template","ctx_r9","fileTypeGroups","_r54","ctx_r53","nextStep","ctx_r10","isNextDisabled","_r57","ctx_r56","save","ctx_r11","isDisabled","LibrarySettingsModalComponent_ng_container_0_ng_container_3_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_4_Template","_r60","ctx_r59","close","ctx_r61","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","ctx_r62","forceScan","ctx_r63","reset","ctx_r64","LibrarySettingsModalComponent_ng_container_0_ng_container_35_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_36_Template","ctx_r0","_r4","ɵɵattribute","ɵɵclassMapInterpolate1","utilityService","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","TabID","General","Folder","setupStep","Cover","Advanced","_r5","_r12","StepID","LibrarySettingsModalComponent","constructor","uploadService","modalService","settingService","modal","confirmService","libraryService","toastr","cdRef","imageService","destroyRef","inject","DestroyRef","FormGroup","FormControl","nonNullable","validators","Validators","type","LibraryType","Manga","folderWatching","includeInDashboard","includeInRecommended","includeInSearch","manageCollections","manageReadingLists","allowScrobbling","collapseSeriesRelationships","madeChanges","allFileTypeGroup","ngOnInit","getLibraryTypes","subscribe","types","markForCheck","undefined","push","getLibraryCoverImage","id","Comic","setValue","disable","valueChanges","pipe","debounceTime","distinctUntilChanged","switchMap","libraryNameExists","tap","exists","isExistingName","value","setErrors","takeUntilDestroyed","setValues","parseInt","FileTypeGroup","Archive","Images","Pdf","Epub","Book","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","ɵɵdirectiveInject","UtilityService","UploadService","NgbModal","SettingsService","NgbActiveModal","ConfirmService","LibraryService","ToastrService","ChangeDetectorRef","ImageService","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","styles","changeDetection","_LibrarySettingsModalComponent"],"x_google_ignoreList":[3]}