{ "version": 3, "sources": ["src/app/bookmark/_components/bookmarks/bookmarks.component.ts", "src/app/bookmark/_components/bookmarks/bookmarks.component.html", "src/app/_routes/bookmark-routing.module.ts"], "sourcesContent": ["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 {DecimalPipe, NgIf} 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\";\nimport {WikiLink} from \"../../../_models/wiki\";\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, NgIf]\n})\nexport class BookmarksComponent implements OnInit {\n\n private readonly translocoService = inject(TranslocoService);\n private readonly readerService = inject(ReaderService);\n private readonly downloadService = inject(DownloadService);\n private readonly toastr = inject(ToastrService);\n private readonly confirmService = inject(ConfirmService);\n private readonly actionFactoryService = inject(ActionFactoryService);\n private readonly router = inject(Router);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly filterUtilityService = inject(FilterUtilitiesService);\n private readonly route = inject(ActivatedRoute);\n private readonly jumpbarService = inject(JumpbarService);\n private readonly titleService = inject(Title);\n public readonly bulkSelectionService = inject(BulkSelectionService);\n public readonly imageService = inject(ImageService);\n\n protected readonly WikiLink = WikiLink;\n\n bookmarks: Array = [];\n series: Array = [];\n loadingBookmarks: boolean = false;\n seriesIds: {[id: number]: number} = {};\n clearingSeries: {[id: number]: boolean} = {};\n actions: ActionItem[] = [];\n jumpbarKeys: Array = [];\n\n pagination: Pagination = new 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 constructor() {\n this.filterUtilityService.filterPresetsFromUrl(this.route.snapshot).subscribe(filter => {\n this.filter = filter;\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\n this.cdRef.markForCheck();\n });\n\n this.titleService.setTitle('Kavita - ' + translate('bookmarks.title'));\n }\n\n ngOnInit(): void {\n this.actions = this.actionFactoryService.getBookmarkActions(this.handleAction.bind(this));\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.loadPage();\n });\n break;\n default:\n break;\n }\n }\n\n loadPage() {\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.clearingSeries[bmk.seriesId] = false;\n if (!this.seriesIds.hasOwnProperty(bmk.seriesId)) {\n this.seriesIds[bmk.seriesId] = 0;\n }\n this.seriesIds[bmk.seriesId] += 1;\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.downloadService.download('bookmark', this.bookmarks.filter(bmk => bmk.seriesId === series.id));\n }\n\n updateFilter(data: FilterEvent) {\n if (data.filterV2 === undefined) return;\n this.filter = data.filterV2;\n\n if (data.isFirst) {\n this.loadPage();\n return;\n }\n\n this.filterUtilityService.updateUrlFromFilter(this.filter).subscribe((encodedFilter) => {\n this.loadPage();\n });\n }\n}\n", "\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 { Routes } from \"@angular/router\";\nimport { BookmarksComponent } from \"../bookmark/_components/bookmarks/bookmarks.component\";\n\nexport const routes: Routes = [\n {path: '', component: BookmarksComponent, pathMatch: 'full'},\n];\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275listener", "item_r5", "\u0275\u0275restoreView", "_r4", "$implicit", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "viewBookmarks", "$event", "position_r6", "idx", "bulkSelectionService", "handleCardSelection", "series", "length", "\u0275\u0275elementEnd", "\u0275\u0275property", "name", "imageService", "getSeriesCoverImage", "id", "seriesIds", "actions", "isCardSelected", "\u0275\u0275text", "\u0275\u0275element", "\u0275\u0275textInterpolate1", "t_r7", "\u0275\u0275advance", "WikiLink", "Bookmarks", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate", "_r3", "updateFilter", "\u0275\u0275template", "BookmarksComponent_ng_container_0_app_card_detail_layout_8_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "BookmarksComponent_ng_container_0_app_card_detail_layout_8_ng_template_3_Template", "loadingBookmarks", "filterSettings", "trackByIdentity", "refresh", "jumpbarKeys", "\u0275\u0275elementContainerStart", "_r1", "filterOpen", "emit", "BookmarksComponent_ng_container_0_app_card_detail_layout_8_Template", "filterActive", "\u0275\u0275pureFunction1", "_c0", "\u0275\u0275pipeBind1", "bulkActionCallback", "filter", "BookmarksComponent", "constructor", "translocoService", "inject", "TranslocoService", "readerService", "ReaderService", "downloadService", "DownloadService", "toastr", "ToastrService", "confirmService", "ConfirmService", "actionFactoryService", "ActionFactoryService", "router", "Router", "cdRef", "ChangeDetectorRef", "filterUtilityService", "FilterUtilitiesService", "route", "ActivatedRoute", "jumpbarService", "JumpbarService", "titleService", "Title", "BulkSelectionService", "ImageService", "bookmarks", "clearingSeries", "pagination", "Pagination", "undefined", "FilterSettings", "EventEmitter", "index", "item", "localizedName", "pagesRead", "action", "data", "__async", "selectedSeriesIndexies", "getSelectedCardsForSource", "includes", "map", "Action", "DownloadBookmark", "download", "bmk", "seriesId", "d", "deselectAll", "Delete", "confirm", "translate", "clearMultipleBookmarks", "subscribe", "success", "loadPage", "filterPresetsFromUrl", "snapshot", "filterActiveCheck", "createSeriesV2Filter", "statements", "push", "createSeriesV2DefaultStatement", "presetsV2", "statementLimit", "markForCheck", "setTitle", "ngOnInit", "getBookmarkActions", "handleAction", "bind", "handleKeypress", "event", "key", "KEY_CODES", "SHIFT", "isShiftDown", "handleKeyUp", "clearBookmarks", "downloadBookmarks", "ViewSeries", "navigate", "libraryId", "getAllBookmarks", "pipe", "take", "forEach", "hasOwnProperty", "distinctSeriesMap", "Map", "b", "set", "Array", "from", "values", "getJumpKeys", "t", "queryParams", "incognitoMode", "bookmarkMode", "seriesName", "indexOf", "splice", "filterV2", "isFirst", "updateUrlFromFilter", "encodedFilter", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275resolveDocument", "BookmarksComponent_ng_container_0_Template", "SideNavCompanionBarComponent", "BulkOperationsComponent", "CardDetailLayoutComponent", "CardItemComponent", "DecimalPipe", "TranslocoDirective", "NgIf", "changeDetection", "_BookmarksComponent", "routes", "path", "component", "BookmarksComponent", "pathMatch"] }