{"version":3,"file":"713.6f75948b244abbab.js","mappings":"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","names":["i0","item_r6","_r9","$implicit","ctx_r8","viewBookmarks","$event","position_r7","idx","ctx_r10","bulkSelectionService","handleCardSelection","series","length","name","ctx_r3","imageService","getSeriesCoverImage","id","seriesIds","actions","isCardSelected","t_r1","_r13","ctx_r12","filterOpen","emit","ctx_r14","updateFilter","BookmarksComponent_ng_container_0_ng_template_9_Template","BookmarksComponent_ng_container_0_ng_template_11_Template","ctx_r0","filterActive","_c0","bulkActionCallback","loadingBookmarks","filterSettings","trackByIdentity","refresh","jumpbarKeys","BookmarksComponent","constructor","readerService","seriesService","downloadService","toastr","confirmService","actionFactoryService","router","cdRef","filterUtilityService","route","jumpbarService","titleService","_this","this","bookmarks","downloadingSeries","clearingSeries","filter","undefined","FilterSettings","EventEmitter","index","item","localizedName","pagesRead","translocoService","inject","TranslocoService","_ref","_asyncToGenerator","action","data","selectedSeriesIndexies","getSelectedCardsForSource","includes","map","Action","DownloadBookmark","download","bmk","seriesId","d","deselectAll","Delete","confirm","translate","clearMultipleBookmarks","subscribe","success","loadBookmarks","_x","_x2","apply","arguments","filterPresetsFromUrlV2","snapshot","statements","push","createSeriesV2DefaultStatement","filterActiveCheck","createSeriesV2Filter","presetsV2","statementLimit","setTitle","ngOnInit","getBookmarkActions","handleAction","bind","pagination","handleKeypress","event","key","KEY_CODES","SHIFT","isShiftDown","handleKeyUp","_this2","clearBookmarks","downloadBookmarks","ViewSeries","navigate","libraryId","markForCheck","getAllBookmarks","pipe","take","forEach","distinctSeriesMap","Map","b","set","Array","from","values","getJumpKeys","t","queryParams","incognitoMode","bookmarkMode","_this3","seriesName","indexOf","splice","filterV2","isFirst","updateUrlFromFilterV2","i1","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","core","Xpm","selectors","hostBindings","rf","ctx","BookmarksComponent_ng_container_0_Template","SideNavCompanionBarComponent","BulkOperationsComponent","CardDetailLayoutComponent","CardItemComponent","DecimalPipe","TranslocoDirective","changeDetection","routes","path","component","pathMatch","canActivate","AuthGuard","runGuardsAndResolvers","children","BookmarkRoutingModule","oAB","cJS","RouterModule","forChild","BookmarkModule","CommonModule"],"sourceRoot":"webpack:///","sources":["./src/app/bookmark/_components/bookmarks/bookmarks.component.html","./src/app/bookmark/_components/bookmarks/bookmarks.component.ts","./src/app/bookmark/bookmark-routing.module.ts","./src/app/bookmark/bookmark.module.ts"],"sourcesContent":["\n \n \n {{t('title')}}\n
\n {{t('series-count', {num: series.length | number})}}
\n \n \n \n \n \n \n\n \n {{t('no-data')}} {{t('no-data-2')}}\n \n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostListener,\n inject,\n OnInit\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { take } from 'rxjs';\nimport { BulkSelectionService } from 'src/app/cards/bulk-selection.service';\nimport { FilterSettings } from 'src/app/metadata-filter/filter-settings';\nimport { ConfirmService } from 'src/app/shared/confirm.service';\nimport { DownloadService } from 'src/app/shared/_services/download.service';\nimport { FilterUtilitiesService } from 'src/app/shared/_services/filter-utilities.service';\nimport { KEY_CODES } from 'src/app/shared/_services/utility.service';\nimport { JumpKey } from 'src/app/_models/jumpbar/jump-key';\nimport { PageBookmark } from 'src/app/_models/readers/page-bookmark';\nimport { Pagination } from 'src/app/_models/pagination';\nimport { Series } from 'src/app/_models/series';\nimport { FilterEvent } from 'src/app/_models/metadata/series-filter';\nimport { Action, ActionFactoryService, ActionItem } from 'src/app/_services/action-factory.service';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { JumpbarService } from 'src/app/_services/jumpbar.service';\nimport { ReaderService } from 'src/app/_services/reader.service';\nimport { SeriesService } from 'src/app/_services/series.service';\nimport { DecimalPipe } from '@angular/common';\nimport { CardItemComponent } from '../../../cards/card-item/card-item.component';\nimport { CardDetailLayoutComponent } from '../../../cards/card-detail-layout/card-detail-layout.component';\nimport { BulkOperationsComponent } from '../../../cards/bulk-operations/bulk-operations.component';\nimport { SideNavCompanionBarComponent } from '../../../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component';\nimport {translate, TranslocoDirective, TranslocoService} from \"@ngneat/transloco\";\nimport {SeriesFilterV2} from \"../../../_models/metadata/v2/series-filter-v2\";\nimport {Title} from \"@angular/platform-browser\";\n\n@Component({\n selector: 'app-bookmarks',\n templateUrl: './bookmarks.component.html',\n styleUrls: ['./bookmarks.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SideNavCompanionBarComponent, BulkOperationsComponent, CardDetailLayoutComponent, CardItemComponent, DecimalPipe, TranslocoDirective]\n})\nexport class BookmarksComponent implements OnInit {\n\n bookmarks: Array = [];\n series: Array = [];\n loadingBookmarks: boolean = false;\n seriesIds: {[id: number]: number} = {};\n downloadingSeries: {[id: number]: boolean} = {};\n clearingSeries: {[id: number]: boolean} = {};\n actions: ActionItem[] = [];\n jumpbarKeys: Array = [];\n\n pagination!: Pagination;\n filter: SeriesFilterV2 | undefined = undefined;\n filterSettings: FilterSettings = new FilterSettings();\n filterOpen: EventEmitter = new EventEmitter();\n filterActive: boolean = false;\n filterActiveCheck!: SeriesFilterV2;\n\n trackByIdentity = (index: number, item: Series) => `${item.name}_${item.localizedName}_${item.pagesRead}`;\n refresh: EventEmitter = new EventEmitter();\n\n private readonly translocoService = inject(TranslocoService);\n\n constructor(private readerService: ReaderService, private seriesService: SeriesService,\n private downloadService: DownloadService, private toastr: ToastrService,\n private confirmService: ConfirmService, public bulkSelectionService: BulkSelectionService,\n public imageService: ImageService, private actionFactoryService: ActionFactoryService,\n private router: Router, private readonly cdRef: ChangeDetectorRef,\n private filterUtilityService: FilterUtilitiesService, private route: ActivatedRoute,\n private jumpbarService: JumpbarService, private titleService: Title) {\n this.filter = this.filterUtilityService.filterPresetsFromUrlV2(this.route.snapshot);\n if (this.filter.statements.length === 0) {\n this.filter!.statements.push(this.filterUtilityService.createSeriesV2DefaultStatement());\n }\n this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();\n this.filterActiveCheck!.statements.push(this.filterUtilityService.createSeriesV2DefaultStatement());\n this.filterSettings.presetsV2 = this.filter;\n this.filterSettings.statementLimit = 1;\n this.titleService.setTitle('Kavita - ' + translate('bookmarks.title'));\n }\n\n ngOnInit(): void {\n this.actions = this.actionFactoryService.getBookmarkActions(this.handleAction.bind(this));\n this.pagination = this.filterUtilityService.pagination(this.route.snapshot);\n }\n\n\n @HostListener('document:keydown.shift', ['$event'])\n handleKeypress(event: KeyboardEvent) {\n if (event.key === KEY_CODES.SHIFT) {\n this.bulkSelectionService.isShiftDown = true;\n }\n }\n\n @HostListener('document:keyup.shift', ['$event'])\n handleKeyUp(event: KeyboardEvent) {\n if (event.key === KEY_CODES.SHIFT) {\n this.bulkSelectionService.isShiftDown = false;\n }\n }\n\n async handleAction(action: ActionItem, series: Series) {\n switch (action.action) {\n case(Action.Delete):\n this.clearBookmarks(series);\n break;\n case(Action.DownloadBookmark):\n this.downloadBookmarks(series);\n break;\n case(Action.ViewSeries):\n this.router.navigate(['library', series.libraryId, 'series', series.id]);\n break;\n default:\n break;\n }\n }\n\n bulkActionCallback = async (action: ActionItem, data: any) => {\n const selectedSeriesIndexies = this.bulkSelectionService.getSelectedCardsForSource('bookmark');\n const selectedSeries = this.series.filter((series, index: number) => selectedSeriesIndexies.includes(index + ''));\n const seriesIds = selectedSeries.map(item => item.id);\n\n switch (action.action) {\n case Action.DownloadBookmark:\n this.downloadService.download('bookmark', this.bookmarks.filter(bmk => seriesIds.includes(bmk.seriesId)),\n (d) => {\n if (!d) {\n this.bulkSelectionService.deselectAll();\n }\n });\n break;\n case Action.Delete:\n if (!await this.confirmService.confirm(this.translocoService.translate('bookmarks.confirm-delete'))) {\n break;\n }\n\n this.readerService.clearMultipleBookmarks(seriesIds).subscribe(() => {\n this.toastr.success(this.translocoService.translate('bookmarks.delete-success'));\n this.bulkSelectionService.deselectAll();\n this.loadBookmarks();\n });\n break;\n default:\n break;\n }\n }\n\n loadBookmarks() {\n this.loadingBookmarks = true;\n this.cdRef.markForCheck();\n\n this.readerService.getAllBookmarks(this.filter).pipe(take(1)).subscribe(bookmarks => {\n this.bookmarks = bookmarks;\n this.bookmarks.forEach(bmk => {\n this.downloadingSeries[bmk.seriesId] = false;\n this.clearingSeries[bmk.seriesId] = false;\n });\n\n const distinctSeriesMap = new Map();\n this.bookmarks.forEach(b => {\n distinctSeriesMap.set(b.series.id, b.series);\n });\n this.series = Array.from(distinctSeriesMap.values());\n this.jumpbarKeys = this.jumpbarService.getJumpKeys(this.series, (t: Series) => t.name);\n this.loadingBookmarks = false;\n this.cdRef.markForCheck();\n });\n }\n\n viewBookmarks(series: Series) {\n this.router.navigate(['library', series.libraryId, 'series', series.id, 'manga', 0], {queryParams: {incognitoMode: false, bookmarkMode: true}});\n }\n\n async clearBookmarks(series: Series) {\n if (!await this.confirmService.confirm(this.translocoService.translate('bookmarks.confirm-single-delete', {seriesName: series.name}))) {\n return;\n }\n\n this.clearingSeries[series.id] = true;\n this.cdRef.markForCheck();\n this.readerService.clearBookmarks(series.id).subscribe(() => {\n const index = this.series.indexOf(series);\n if (index > -1) {\n this.series.splice(index, 1);\n }\n this.clearingSeries[series.id] = false;\n this.toastr.success(this.translocoService.translate('delete-single-success', {seriesName: series.name}));\n this.refresh.emit();\n this.cdRef.markForCheck();\n });\n }\n\n downloadBookmarks(series: Series) {\n this.downloadingSeries[series.id] = true;\n this.cdRef.markForCheck();\n this.downloadService.download('bookmark', this.bookmarks.filter(bmk => bmk.seriesId === series.id), (d) => {\n if (!d) {\n this.downloadingSeries[series.id] = false;\n this.cdRef.markForCheck();\n }\n });\n }\n\n updateFilter(data: FilterEvent) {\n if (data.filterV2 === undefined) return;\n this.filter = data.filterV2;\n\n if (!data.isFirst) {\n this.filterUtilityService.updateUrlFromFilterV2(this.pagination, this.filter);\n }\n\n this.loadBookmarks();\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { AuthGuard } from \"../_guards/auth.guard\";\nimport { BookmarksComponent } from \"./_components/bookmarks/bookmarks.component\";\n\nconst routes: Routes = [\n {path: '**', component: BookmarksComponent, pathMatch: 'full', canActivate: [AuthGuard]},\n {\n path: '',\n runGuardsAndResolvers: 'always',\n canActivate: [AuthGuard],\n children: [\n {path: 'bookmarks', component: BookmarksComponent},\n ]\n }\n];\n\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class BookmarkRoutingModule { }","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BookmarkRoutingModule } from './bookmark-routing.module';\nimport { BookmarksComponent } from './_components/bookmarks/bookmarks.component';\nimport {BulkOperationsComponent} from \"../cards/bulk-operations/bulk-operations.component\";\nimport {CardDetailLayoutComponent} from \"../cards/card-detail-layout/card-detail-layout.component\";\nimport {\n SideNavCompanionBarComponent\n} from \"../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component\";\nimport {CardItemComponent} from \"../cards/card-item/card-item.component\";\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n BookmarkRoutingModule,\n BulkOperationsComponent,\n CardDetailLayoutComponent,\n SideNavCompanionBarComponent,\n CardItemComponent,\n BookmarksComponent\n ]\n})\nexport class BookmarkModule { }\n"],"x_google_ignoreList":[]}