{"version":3,"file":"common.540c329e5ccefa2b.js","mappings":"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","names":["ServerService","constructor","httpClient","this","baseUrl","environment","apiUrl","getServerInfo","get","clearCache","post","cleanupWantToRead","backupDatabase","analyzeFiles","checkForUpdate","getChangelog","isServerAccessible","getRecurringJobs","convertMedia","bustCache","getMediaErrors","clearMediaAlerts","t","i0","i1","_angular_core__WEBPACK_IMPORTED_MODULE_1__","Yz7","factory","ɵfac","providedIn","_r8","ctx_r7","executeAction","Action","MarkAsUnread","t_r1","_r11","ctx_r10","MarkAsRead","BulkOperationsComponent_ng_container_0_ng_container_1_div_1_button_7_Template","BulkOperationsComponent_ng_container_0_ng_container_1_div_1_button_8_Template","$event","_r14","ctx_r13","performAction","ctx_r15","bulkSelectionService","deselectAll","_c0","ctx_r4","topOffset","_c1","selectionCount_r3","hasMarkAsUnread","hasMarkAsRead","actions","BulkOperationsComponent_ng_container_0_ng_container_1_div_1_Template","BulkOperationsComponent_ng_container_0_ng_container_1_Template","ctx_r0","selections$","BulkOperationsComponent","cdRef","actionFactoryService","destroyRef","inject","DestroyRef","ngOnInit","actions$","pipe","takeUntilDestroyed","subscribe","applyCallbackToList","actionCallback","bind","hasAction","markForCheck","handleActionCallback","action","data","foundActions","filter","act","length","i2","_angular_core__WEBPACK_IMPORTED_MODULE_3__","Xpm","selectors","inputs","standalone","features","decls","vars","consts","template","rf","ctx","BulkOperationsComponent_ng_container_0_Template","CommonModule","i3","CardActionablesComponent","TranslocoModule","i4","NgbTooltip","styles","changeDetection","FITTING_OPTION","HEIGHT","WIDTH","ORIGINAL","SPLIT_PAGE_PART","NO_SPLIT","LEFT_PART","RIGHT_PART","PAGING_DIRECTION","FORWARD","BACKWARDS","A11yClickDirective","element","keyCodes","keyCodeArray","split","onEvent","event","flag","keyCode","which","charCode","indexOf","toString","nativeElement","click","preventDefault","ElementRef","_angular_core__WEBPACK_IMPORTED_MODULE_0__","lG2","hostBindings","ctx_r2","itemTemplate","item_r4","i_r5","_r7","ctx_r6","toggleVisible","ctx_r3","isCollapsed","_c2","itemsLeft","BadgeExpanderComponent_ng_container_0_ng_container_3_Template","BadgeExpanderComponent_ng_container_0_button_4_Template","visibleItems","BadgeExpanderComponent","Math","max","items","itemsTillExpander","slice","contentQueries","dirIndex","BadgeExpanderComponent_ng_container_0_Template","TranslocoDirective","person","name","PersonBadgeComponent","PersonBadgeComponent_div_0_Template","undefined","_r4","toggleView","hideToggle","ReadMoreComponent_ng_container_0_a_4_Template","currentText","blur","text","maxLength","showToggle","ReadMoreComponent","determineView","substring","min","lastIndexOf","ngOnChanges","ReadMoreComponent_ng_container_0_Template","SafeHtmlPipe"],"sourceRoot":"webpack:///","sources":["./src/app/_services/server.service.ts","./src/app/cards/bulk-operations/bulk-operations.component.html","./src/app/cards/bulk-operations/bulk-operations.component.ts","./src/app/manga-reader/_models/reader-enums.ts","./src/app/shared/a11y-click.directive.ts","./src/app/shared/badge-expander/badge-expander.component.html","./src/app/shared/badge-expander/badge-expander.component.ts","./src/app/shared/person-badge/person-badge.component.html","./src/app/shared/person-badge/person-badge.component.ts","./src/app/shared/read-more/read-more.component.html","./src/app/shared/read-more/read-more.component.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport {ServerInfoSlim} from '../admin/_models/server-info';\nimport { UpdateVersionEvent } from '../_models/events/update-version-event';\nimport { Job } from '../_models/job/job';\nimport { KavitaMediaError } from '../admin/_models/media-error';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServerService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient) { }\n\n\n getServerInfo() {\n return this.httpClient.get(this.baseUrl + 'server/server-info-slim');\n }\n\n clearCache() {\n return this.httpClient.post(this.baseUrl + 'server/clear-cache', {});\n }\n\n cleanupWantToRead() {\n return this.httpClient.post(this.baseUrl + 'server/cleanup-want-to-read', {});\n }\n\n backupDatabase() {\n return this.httpClient.post(this.baseUrl + 'server/backup-db', {});\n }\n\n analyzeFiles() {\n return this.httpClient.post(this.baseUrl + 'server/analyze-files', {});\n }\n\n checkForUpdate() {\n return this.httpClient.get(this.baseUrl + 'server/check-update', {});\n }\n\n getChangelog() {\n return this.httpClient.get(this.baseUrl + 'server/changelog', {});\n }\n\n isServerAccessible() {\n return this.httpClient.get(this.baseUrl + 'server/accessible');\n }\n\n getRecurringJobs() {\n return this.httpClient.get(this.baseUrl + 'server/jobs');\n }\n\n convertMedia() {\n return this.httpClient.post(this.baseUrl + 'server/convert-media', {});\n }\n\n bustCache() {\n return this.httpClient.post(this.baseUrl + 'server/bust-review-and-rec-cache', {});\n }\n\n getMediaErrors() {\n return this.httpClient.get>(this.baseUrl + 'server/media-errors', {});\n }\n\n clearMediaAlerts() {\n return this.httpClient.post(this.baseUrl + 'server/clear-media-alerts', {});\n }\n}\n","\n \n
0\" class=\"bulk-select mb-3 fixed-top\" [ngStyle]=\"{'margin-top': topOffset + 'px'}\">\n
\n\n \n \n {{t('items-selected',{num: selectionCount | number})}}\n \n\n \n \n \n \n \n\n Bulk Actions\n\n \n
\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { Action, ActionFactoryService, ActionItem } from 'src/app/_services/action-factory.service';\nimport { BulkSelectionService } from '../bulk-selection.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {AsyncPipe, CommonModule} from \"@angular/common\";\nimport {TranslocoModule} from \"@ngneat/transloco\";\nimport {NgbTooltip} from \"@ng-bootstrap/ng-bootstrap\";\nimport {CardActionablesComponent} from \"../../_single-module/card-actionables/card-actionables.component\";\n\n@Component({\n selector: 'app-bulk-operations',\n standalone: true,\n imports: [\n CommonModule,\n AsyncPipe,\n CardActionablesComponent,\n TranslocoModule,\n NgbTooltip\n ],\n templateUrl: './bulk-operations.component.html',\n styleUrls: ['./bulk-operations.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BulkOperationsComponent implements OnInit {\n\n @Input({required: true}) actionCallback!: (action: ActionItem, data: any) => void;\n\n topOffset: number = 56;\n hasMarkAsRead: boolean = false;\n hasMarkAsUnread: boolean = false;\n actions: Array> = [];\n private readonly destroyRef = inject(DestroyRef);\n\n get Action() {\n return Action;\n }\n\n constructor(public bulkSelectionService: BulkSelectionService, private readonly cdRef: ChangeDetectorRef,\n private actionFactoryService: ActionFactoryService) { }\n\n ngOnInit(): void {\n this.bulkSelectionService.actions$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(actions => {\n // We need to do a recursive callback apply\n this.actions = this.actionFactoryService.applyCallbackToList(actions, this.actionCallback.bind(this));\n this.hasMarkAsRead = this.actionFactoryService.hasAction(this.actions, Action.MarkAsRead);\n this.hasMarkAsUnread = this.actionFactoryService.hasAction(this.actions, Action.MarkAsUnread);\n this.cdRef.markForCheck();\n });\n }\n\n handleActionCallback(action: ActionItem, data: any) {\n this.actionCallback(action, data);\n }\n\n performAction(action: ActionItem) {\n this.actionCallback(action, null);\n }\n\n executeAction(action: Action) {\n const foundActions = this.actions.filter(act => act.action === action);\n if (foundActions.length > 0) {\n this.performAction(foundActions[0]);\n }\n }\n}\n","export enum FITTING_OPTION {\n HEIGHT = 'full-height',\n WIDTH = 'full-width',\n ORIGINAL = 'original'\n}\n\n/**\n * How to split a page into virutal pages. Only works with LayoutMode.Single\n */\nexport enum SPLIT_PAGE_PART {\n NO_SPLIT = 'none',\n LEFT_PART = 'left',\n RIGHT_PART = 'right'\n}\n \nexport enum PAGING_DIRECTION {\n FORWARD = 1,\n BACKWARDS = -1,\n}\n \n","import { Directive, Input, HostListener, OnInit, ElementRef, Inject } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[a11y-click]',\n standalone: true\n})\nexport class A11yClickDirective implements OnInit {\n @Input('a11y-click') keyCodes!: string;\n keyCodeArray!: string[];\n\n constructor(@Inject(ElementRef) private element : ElementRef){}\n\n ngOnInit(){\n if(this.keyCodes) {\n this.keyCodeArray = this.keyCodes.split(',');\n }\n }\n\n @HostListener('keydown', ['$event'])\n onEvent(event: any) {\n var keyCodeCondition = function (that: any) {\n var flag = false;\n if (!(event.keyCode)) {\n if (event.which) {\n event.keyCode = event.which;\n } else if (event.charCode) {\n event.keyCode = event.charCode;\n }\n }\n if ((event.keyCode && that.keyCodeArray.indexOf(event.keyCode.toString()) > -1)) {\n flag = true;\n }\n return flag;\n };\n const that = this;\n if (this.keyCodeArray.length > 0 && keyCodeCondition(that)) {\n this.element.nativeElement.click();\n event.preventDefault();\n }\n\n }\n\n}\n","\n
\n
\n \n \n
\n
\n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport {CommonModule} from \"@angular/common\";\nimport {TranslocoDirective} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-badge-expander',\n standalone: true,\n imports: [CommonModule, TranslocoDirective],\n templateUrl: './badge-expander.component.html',\n styleUrls: ['./badge-expander.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BadgeExpanderComponent implements OnInit {\n\n @Input() items: Array = [];\n @Input() itemsTillExpander: number = 4;\n @ContentChild('badgeExpanderItem') itemTemplate!: TemplateRef;\n\n\n visibleItems: Array = [];\n isCollapsed: boolean = false;\n\n get itemsLeft() {\n return Math.max(this.items.length - this.itemsTillExpander, 0);\n }\n\n constructor(private readonly cdRef: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n this.visibleItems = this.items.slice(0, this.itemsTillExpander);\n this.cdRef.markForCheck();\n }\n\n toggleVisible() {\n this.isCollapsed = !this.isCollapsed;\n this.visibleItems = this.items;\n this.cdRef.markForCheck();\n }\n\n}\n","
\n
\n \n
\n {{person.name}}\n
\n
\n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Person } from '../../_models/metadata/person';\nimport {CommonModule} from \"@angular/common\";\n\n@Component({\n selector: 'app-person-badge',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './person-badge.component.html',\n styleUrls: ['./person-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PersonBadgeComponent {\n\n @Input({required: true}) person!: Person;\n\n constructor() { }\n}\n","\n \n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges } from '@angular/core';\nimport {CommonModule} from \"@angular/common\";\nimport {SafeHtmlPipe} from \"../../pipe/safe-html.pipe\";\nimport {TranslocoDirective} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-read-more',\n standalone: true,\n imports: [CommonModule, SafeHtmlPipe, TranslocoDirective],\n templateUrl: './read-more.component.html',\n styleUrls: ['./read-more.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ReadMoreComponent implements OnChanges {\n /**\n * String to apply readmore on\n */\n @Input({required: true}) text!: string;\n /**\n * Max length before apply read more. Defaults to 250 characters.\n */\n @Input() maxLength: number = 250;\n /**\n * If the field is collapsed and blur true, text will not be readable\n */\n @Input() blur: boolean = false;\n /**\n * If the read more toggle is visible\n */\n @Input() showToggle: boolean = true;\n\n currentText!: string;\n hideToggle: boolean = true;\n isCollapsed: boolean = true;\n\n constructor(private readonly cdRef: ChangeDetectorRef) {}\n\n toggleView() {\n this.isCollapsed = !this.isCollapsed;\n this.determineView();\n }\n\n determineView() {\n if (!this.text || this.text.length <= this.maxLength) {\n this.currentText = this.text;\n this.isCollapsed = true;\n this.hideToggle = true;\n return;\n }\n this.hideToggle = false;\n if (this.isCollapsed) {\n this.currentText = this.text.substring(0, this.maxLength);\n this.currentText = this.currentText.substring(0, Math.min(this.currentText.length, this.currentText.lastIndexOf(' ')));\n this.currentText = this.currentText + '…';\n } else if (!this.isCollapsed) {\n this.currentText = this.text;\n }\n\n this.cdRef.markForCheck();\n }\n ngOnChanges() {\n this.determineView();\n }\n}\n"],"x_google_ignoreList":[]}