{
"version": 3,
"sources": ["src/app/_models/metadata/v2/filter-comparison.ts", "src/app/_models/metadata/v2/filter-field.ts", "src/app/_models/metadata/series-filter.ts", "src/app/_models/metadata/v2/filter-combination.ts", "src/app/_services/metadata.service.ts"],
"sourcesContent": ["export enum FilterComparison {\r\n Equal = 0,\r\n GreaterThan =1,\r\n GreaterThanEqual = 2,\r\n LessThan = 3,\r\n LessThanEqual = 4,\r\n /// \r\n ///\r\n /// \r\n /// Only works with IList\r\n Contains = 5,\r\n MustContains = 6,\r\n /// \r\n /// Performs a LIKE %value%\r\n /// \r\n Matches = 7,\r\n NotContains = 8,\r\n /// \r\n /// Not Equal to\r\n /// \r\n NotEqual = 9,\r\n /// \r\n /// String starts with\r\n /// \r\n BeginsWith = 10,\r\n /// \r\n /// String ends with\r\n /// \r\n EndsWith = 11,\r\n /// \r\n /// Is Date before X\r\n /// \r\n IsBefore = 12,\r\n /// \r\n /// Is Date after X\r\n /// \r\n IsAfter = 13,\r\n /// \r\n /// Is Date between now and X seconds ago\r\n /// \r\n IsInLast = 14,\r\n /// \r\n /// Is Date not between now and X seconds ago\r\n /// \r\n IsNotInLast = 15,\r\n}\r\n", "export enum FilterField\r\n{\r\n None = -1,\r\n Summary = 0,\r\n SeriesName = 1,\r\n PublicationStatus = 2,\r\n Languages = 3,\r\n AgeRating = 4,\r\n UserRating = 5,\r\n Tags = 6,\r\n CollectionTags = 7,\r\n Translators = 8,\r\n Characters = 9,\r\n Publisher = 10,\r\n Editor = 11,\r\n CoverArtist = 12,\r\n Letterer = 13,\r\n Colorist = 14,\r\n Inker = 15,\r\n Penciller = 16,\r\n Writers = 17,\r\n Genres = 18,\r\n Libraries = 19,\r\n ReadProgress = 20,\r\n Formats = 21,\r\n ReleaseYear = 22,\r\n ReadTime = 23,\r\n Path = 24,\r\n FilePath = 25,\r\n WantToRead = 26,\r\n ReadingDate = 27,\r\n AverageRating = 28,\r\n Imprint = 29,\r\n Team = 30,\r\n Location = 31\r\n}\r\n\r\n\r\nconst enumArray = Object.keys(FilterField)\r\n .filter(key => !isNaN(Number(key)) && parseInt(key, 10) >= 0)\r\n .map(key => {\r\n // @ts-ignore\r\n return ({key: key, value: FilterField[key]});\r\n });\r\n\r\nenumArray.sort((a, b) => a.value.localeCompare(b.value));\r\n\r\nexport const allFields = enumArray\r\n .map(key => parseInt(key.key, 10))as FilterField[];\r\n", "import { MangaFormat } from \"../manga-format\";\r\nimport { SeriesFilterV2 } from \"./v2/series-filter-v2\";\r\nimport {FilterField} from \"./v2/filter-field\";\r\n\r\nexport interface FilterItem {\r\n title: string;\r\n value: T;\r\n selected: boolean;\r\n}\r\n\r\nexport interface SortOptions {\r\n sortField: SortField;\r\n isAscending: boolean;\r\n}\r\n\r\nexport enum SortField {\r\n SortName = 1,\r\n Created = 2,\r\n LastModified = 3,\r\n LastChapterAdded = 4,\r\n TimeToRead = 5,\r\n ReleaseYear = 6,\r\n ReadProgress = 7,\r\n /**\r\n * Kavita+ only\r\n */\r\n AverageRating = 8\r\n}\r\n\r\nexport const allSortFields = Object.keys(SortField)\r\n .filter(key => !isNaN(Number(key)) && parseInt(key, 10) >= 0)\r\n .map(key => parseInt(key, 10)) as SortField[];\r\n\r\nexport const mangaFormatFilters = [\r\n {\r\n title: 'Images',\r\n value: MangaFormat.IMAGE,\r\n selected: false\r\n },\r\n {\r\n title: 'EPUB',\r\n value: MangaFormat.EPUB,\r\n selected: false\r\n },\r\n {\r\n title: 'PDF',\r\n value: MangaFormat.PDF,\r\n selected: false\r\n },\r\n {\r\n title: 'ARCHIVE',\r\n value: MangaFormat.ARCHIVE,\r\n selected: false\r\n }\r\n];\r\n\r\nexport interface FilterEvent {\r\n filterV2: SeriesFilterV2;\r\n isFirst: boolean;\r\n}\r\n\r\n", "export enum FilterCombination {\r\n Or = 0,\r\n And = 1\r\n}\r\n", "import {HttpClient} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {tap} from 'rxjs/operators';\r\nimport {of} from 'rxjs';\r\nimport {environment} from 'src/environments/environment';\r\nimport {Genre} from '../_models/metadata/genre';\r\nimport {AgeRatingDto} from '../_models/metadata/age-rating-dto';\r\nimport {Language} from '../_models/metadata/language';\r\nimport {PublicationStatusDto} from '../_models/metadata/publication-status-dto';\r\nimport {Person, PersonRole} from '../_models/metadata/person';\r\nimport {Tag} from '../_models/tag';\r\nimport {FilterComparison} from '../_models/metadata/v2/filter-comparison';\r\nimport {FilterField} from '../_models/metadata/v2/filter-field';\r\nimport {Router} from \"@angular/router\";\r\nimport {SortField} from \"../_models/metadata/series-filter\";\r\nimport {FilterCombination} from \"../_models/metadata/v2/filter-combination\";\r\nimport {SeriesFilterV2} from \"../_models/metadata/v2/series-filter-v2\";\r\nimport {FilterStatement} from \"../_models/metadata/v2/filter-statement\";\r\nimport {SeriesDetailPlus} from \"../_models/series-detail/series-detail-plus\";\r\nimport {LibraryType} from \"../_models/library/library\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MetadataService {\r\n\r\n baseUrl = environment.apiUrl;\r\n private validLanguages: Array = [];\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getSeriesMetadataFromPlus(seriesId: number, libraryType: LibraryType) {\r\n return this.httpClient.get(this.baseUrl + 'metadata/series-detail-plus?seriesId=' + seriesId + '&libraryType=' + libraryType);\r\n }\r\n\r\n forceRefreshFromPlus(seriesId: number) {\r\n return this.httpClient.post(this.baseUrl + 'metadata/force-refresh?seriesId=' + seriesId, {});\r\n }\r\n\r\n getAllAgeRatings(libraries?: Array) {\r\n let method = 'metadata/age-ratings'\r\n if (libraries != undefined && libraries.length > 0) {\r\n method += '?libraryIds=' + libraries.join(',');\r\n }\r\n return this.httpClient.get>(this.baseUrl + method);\r\n }\r\n\r\n getAllPublicationStatus(libraries?: Array) {\r\n let method = 'metadata/publication-status'\r\n if (libraries != undefined && libraries.length > 0) {\r\n method += '?libraryIds=' + libraries.join(',');\r\n }\r\n return this.httpClient.get>(this.baseUrl + method);\r\n }\r\n\r\n getAllTags(libraries?: Array) {\r\n let method = 'metadata/tags'\r\n if (libraries != undefined && libraries.length > 0) {\r\n method += '?libraryIds=' + libraries.join(',');\r\n }\r\n return this.httpClient.get>(this.baseUrl + method);\r\n }\r\n\r\n getAllGenres(libraries?: Array) {\r\n let method = 'metadata/genres'\r\n if (libraries != undefined && libraries.length > 0) {\r\n method += '?libraryIds=' + libraries.join(',');\r\n }\r\n return this.httpClient.get>(this.baseUrl + method);\r\n }\r\n\r\n getAllLanguages(libraries?: Array) {\r\n let method = 'metadata/languages'\r\n if (libraries != undefined && libraries.length > 0) {\r\n method += '?libraryIds=' + libraries.join(',');\r\n }\r\n return this.httpClient.get>(this.baseUrl + method);\r\n }\r\n\r\n\r\n /**\r\n * All the potential language tags there can be\r\n */\r\n getAllValidLanguages() {\r\n if (this.validLanguages != undefined && this.validLanguages.length > 0) {\r\n return of(this.validLanguages);\r\n }\r\n return this.httpClient.get>(this.baseUrl + 'metadata/all-languages')\r\n .pipe(tap(l => this.validLanguages = l));\r\n }\r\n\r\n getAllPeople(libraries?: Array) {\r\n let method = 'metadata/people'\r\n if (libraries != undefined && libraries.length > 0) {\r\n method += '?libraryIds=' + libraries.join(',');\r\n }\r\n return this.httpClient.get>(this.baseUrl + method);\r\n }\r\n\r\n getAllPeopleByRole(role: PersonRole) {\r\n return this.httpClient.get>(this.baseUrl + 'metadata/people-by-role?role=' + role);\r\n }\r\n\r\n createDefaultFilterDto(): SeriesFilterV2 {\r\n return {\r\n statements: [] as FilterStatement[],\r\n combination: FilterCombination.And,\r\n limitTo: 0,\r\n sortOptions: {\r\n isAscending: true,\r\n sortField: SortField.SortName\r\n }\r\n };\r\n }\r\n\r\n createDefaultFilterStatement(field: FilterField = FilterField.SeriesName, comparison = FilterComparison.Equal, value = '') {\r\n return {\r\n comparison: comparison,\r\n field: field,\r\n value: value\r\n };\r\n }\r\n\r\n updateFilter(arr: Array, index: number, filterStmt: FilterStatement) {\r\n arr[index].comparison = filterStmt.comparison;\r\n arr[index].field = filterStmt.field;\r\n arr[index].value = filterStmt.value ? filterStmt.value + '' : '';\r\n }\r\n}\r\n"],
"mappings": "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",
"names": ["FilterComparison", "FilterField", "enumArray", "Object", "keys", "filter", "key", "isNaN", "Number", "parseInt", "map", "value", "sort", "a", "b", "localeCompare", "allFields", "SortField", "allSortFields", "Object", "keys", "filter", "key", "isNaN", "Number", "parseInt", "map", "mangaFormatFilters", "title", "value", "MangaFormat", "IMAGE", "selected", "EPUB", "PDF", "ARCHIVE", "FilterCombination", "MetadataService", "constructor", "httpClient", "baseUrl", "environment", "apiUrl", "validLanguages", "getSeriesMetadataFromPlus", "seriesId", "libraryType", "get", "forceRefreshFromPlus", "post", "getAllAgeRatings", "libraries", "method", "undefined", "length", "join", "getAllPublicationStatus", "getAllTags", "getAllGenres", "getAllLanguages", "getAllValidLanguages", "of", "pipe", "tap", "l", "getAllPeople", "getAllPeopleByRole", "role", "createDefaultFilterDto", "statements", "combination", "FilterCombination", "And", "limitTo", "sortOptions", "isAscending", "sortField", "SortField", "SortName", "createDefaultFilterStatement", "field", "FilterField", "SeriesName", "comparison", "FilterComparison", "Equal", "value", "updateFilter", "arr", "index", "filterStmt", "\u0275\u0275inject", "HttpClient", "factory", "\u0275fac", "providedIn", "_MetadataService"]
}