{ "version": 3, "sources": ["src/app/admin/manage-alerts/manage-alerts.component.ts", "src/app/admin/manage-alerts/manage-alerts.component.html"], "sourcesContent": ["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n inject,\n DestroyRef\n} from '@angular/core';\nimport { BehaviorSubject, Observable, filter, shareReplay } from 'rxjs';\nimport { SortEvent, SortableHeader, compare } from 'src/app/_single-module/table/_directives/sortable-header.directive';\nimport { KavitaMediaError } from '../_models/media-error';\nimport { ServerService } from 'src/app/_services/server.service';\nimport { EVENTS, MessageHubService } from 'src/app/_services/message-hub.service';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { FilterPipe } from '../../_pipes/filter.pipe';\nimport { LoadingComponent } from '../../shared/loading/loading.component';\nimport { NgIf, NgFor } from '@angular/common';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\nimport {WikiLink} from \"../../_models/wiki\";\n\n@Component({\n selector: 'app-manage-alerts',\n templateUrl: './manage-alerts.component.html',\n styleUrls: ['./manage-alerts.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ReactiveFormsModule, NgIf, LoadingComponent, NgFor, FilterPipe, SortableHeader, TranslocoDirective]\n})\nexport class ManageAlertsComponent implements OnInit {\n\n @Output() alertCount = new EventEmitter();\n @ViewChildren(SortableHeader) headers!: QueryList>;\n\n private readonly serverService = inject(ServerService);\n private readonly messageHub = inject(MessageHubService);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n protected readonly WikiLink = WikiLink;\n\n messageHubUpdate$ = this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef), filter(m => m.event === EVENTS.ScanSeries), shareReplay());\n currentSort = new BehaviorSubject>({column: 'extension', direction: 'asc'});\n currentSort$: Observable> = this.currentSort.asObservable();\n\n data: Array = [];\n isLoading = true;\n formGroup = new FormGroup({\n filter: new FormControl('', [])\n });\n\n ngOnInit(): void {\n\n this.loadData();\n\n this.messageHubUpdate$.subscribe(_ => this.loadData());\n\n this.currentSort$.subscribe(sortConfig => {\n this.data = (sortConfig.column) ? this.data.sort((a: KavitaMediaError, b: KavitaMediaError) => {\n if (sortConfig.column === '') return 0;\n const res = compare(a[sortConfig.column], b[sortConfig.column]);\n return sortConfig.direction === 'asc' ? res : -res;\n }) : this.data;\n this.cdRef.markForCheck();\n });\n }\n\n onSort(evt: any) {\n //SortEvent\n this.currentSort.next(evt);\n\n // Must clear out headers here\n this.headers.forEach((header) => {\n if (header.sortable !== evt.column) {\n header.direction = '';\n }\n });\n }\n\n loadData() {\n this.isLoading = true;\n this.cdRef.markForCheck();\n this.serverService.getMediaErrors().subscribe(d => {\n this.data = d;\n this.isLoading = false;\n this.alertCount.emit(d.length);\n this.cdRef.detectChanges();\n });\n }\n\n clear() {\n this.serverService.clearMediaAlerts().subscribe(_ => this.loadData());\n }\n\n filterList = (listItem: KavitaMediaError) => {\n const query = (this.formGroup.get('filter')?.value || '').toLowerCase();\n return listItem.comment.toLowerCase().indexOf(query) >= 0 || listItem.filePath.toLowerCase().indexOf(query) >= 0 || listItem.details.indexOf(query) >= 0;\n }\n}\n", "\n

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

\n\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{t('extension-header')}}\n \n {{t('file-header')}}\n \n {{t('comment-header')}}\n \n {{t('details-header')}}\n
No issues
\n {{item.extension}}\n \n {{item.filePath}}\n \n {{item.comment}}\n \n {{item.details}}\n
\n\n
\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "ctx_r1", "isLoading", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "item_r3", "extension", "filePath", "comment", "details", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "ManageAlertsComponent_ng_container_0_ng_container_29_tr_1_Template", "ManageAlertsComponent_ng_container_0_ng_container_29_tr_2_Template", "filteredData_r4", "length", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "clear", "$event", "onSort", "ManageAlertsComponent_ng_container_0_tr_28_Template", "ManageAlertsComponent_ng_container_0_ng_container_29_Template", "t_r5", "WikiLink", "MediaIssues", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate", "formGroup", "\u0275\u0275pipeBind2", "data", "filterList", "ManageAlertsComponent", "constructor", "alertCount", "EventEmitter", "serverService", "inject", "ServerService", "messageHub", "MessageHubService", "cdRef", "ChangeDetectorRef", "destroyRef", "DestroyRef", "messageHubUpdate$", "messages$", "pipe", "takeUntilDestroyed", "filter", "m", "event", "EVENTS", "ScanSeries", "shareReplay", "currentSort", "BehaviorSubject", "column", "direction", "currentSort$", "asObservable", "FormGroup", "FormControl", "listItem", "query", "get", "value", "toLowerCase", "indexOf", "ngOnInit", "loadData", "subscribe", "_", "sortConfig", "sort", "a", "b", "res", "compare", "markForCheck", "evt", "next", "headers", "forEach", "header", "sortable", "getMediaErrors", "d", "emit", "detectChanges", "clearMediaAlerts", "selectors", "viewQuery", "rf", "ctx", "SortableHeader", "ManageAlertsComponent_ng_container_0_Template", "ReactiveFormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "FormGroupDirective", "FormControlName", "NgIf", "LoadingComponent", "NgFor", "FilterPipe", "TranslocoDirective", "changeDetection", "_ManageAlertsComponent"] }