{ "version": 3, "sources": ["src/app/cards/card-item/card-item.component.ts", "src/app/cards/card-item/card-item.component.html"], "sourcesContent": ["import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, ContentChild, DestroyRef,\r\n EventEmitter,\r\n HostListener,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output, TemplateRef\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { DownloadEvent, DownloadService } from 'src/app/shared/_services/download.service';\r\nimport { UtilityService } from 'src/app/shared/_services/utility.service';\r\nimport { Chapter } from 'src/app/_models/chapter';\r\nimport { UserCollection } from 'src/app/_models/collection-tag';\r\nimport { UserProgressUpdateEvent } from 'src/app/_models/events/user-progress-update-event';\r\nimport { MangaFormat } from 'src/app/_models/manga-format';\r\nimport { PageBookmark } from 'src/app/_models/readers/page-bookmark';\r\nimport { RecentlyAddedItem } from 'src/app/_models/recently-added-item';\r\nimport { Series } from 'src/app/_models/series';\r\nimport { User } from 'src/app/_models/user';\r\nimport { Volume } from 'src/app/_models/volume';\r\nimport { AccountService } from 'src/app/_services/account.service';\r\nimport { Action, ActionFactoryService, ActionItem } from 'src/app/_services/action-factory.service';\r\nimport { ImageService } from 'src/app/_services/image.service';\r\nimport { LibraryService } from 'src/app/_services/library.service';\r\nimport { EVENTS, MessageHubService } from 'src/app/_services/message-hub.service';\r\nimport { ScrollService } from 'src/app/_services/scroll.service';\r\nimport { BulkSelectionService } from '../bulk-selection.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {ImageComponent} from \"../../shared/image/image.component\";\r\nimport {NgbProgressbar, NgbTooltip} from \"@ng-bootstrap/ng-bootstrap\";\r\nimport {DownloadIndicatorComponent} from \"../download-indicator/download-indicator.component\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {MangaFormatPipe} from \"../../_pipes/manga-format.pipe\";\r\nimport {MangaFormatIconPipe} from \"../../_pipes/manga-format-icon.pipe\";\r\nimport {SentenceCasePipe} from \"../../_pipes/sentence-case.pipe\";\r\nimport {DecimalPipe, NgTemplateOutlet} from \"@angular/common\";\r\nimport {RouterLink, RouterLinkActive} from \"@angular/router\";\r\nimport {TranslocoModule} from \"@jsverse/transloco\";\r\nimport {CardActionablesComponent} from \"../../_single-module/card-actionables/card-actionables.component\";\r\nimport {NextExpectedChapter} from \"../../_models/series-detail/next-expected-chapter\";\r\nimport {UtcToLocalTimePipe} from \"../../_pipes/utc-to-local-time.pipe\";\r\nimport {SafeHtmlPipe} from \"../../_pipes/safe-html.pipe\";\r\nimport {PromotedIconComponent} from \"../../shared/_components/promoted-icon/promoted-icon.component\";\r\nimport {SeriesFormatComponent} from \"../../shared/series-format/series-format.component\";\r\nimport {BrowsePerson} from \"../../_models/person/browse-person\";\r\nimport {CompactNumberPipe} from \"../../_pipes/compact-number.pipe\";\r\n\r\nexport type CardEntity = Series | Volume | Chapter | UserCollection | PageBookmark | RecentlyAddedItem | NextExpectedChapter | BrowsePerson;\r\n\r\n@Component({\r\n selector: 'app-card-item',\r\n standalone: true,\r\n imports: [\r\n ImageComponent,\r\n NgbProgressbar,\r\n DownloadIndicatorComponent,\r\n FormsModule,\r\n NgbTooltip,\r\n MangaFormatPipe,\r\n MangaFormatIconPipe,\r\n CardActionablesComponent,\r\n SentenceCasePipe,\r\n RouterLink,\r\n TranslocoModule,\r\n SafeHtmlPipe,\r\n RouterLinkActive,\r\n PromotedIconComponent,\r\n SeriesFormatComponent,\r\n DecimalPipe,\r\n NgTemplateOutlet,\r\n CompactNumberPipe\r\n ],\r\n templateUrl: './card-item.component.html',\r\n styleUrls: ['./card-item.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CardItemComponent implements OnInit {\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n public readonly imageService = inject(ImageService);\r\n public readonly bulkSelectionService = inject(BulkSelectionService);\r\n private readonly libraryService = inject(LibraryService);\r\n private readonly downloadService = inject(DownloadService);\r\n private readonly utilityService = inject(UtilityService);\r\n private readonly messageHub = inject(MessageHubService);\r\n private readonly accountService = inject(AccountService);\r\n private readonly scrollService = inject(ScrollService);\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n private readonly actionFactoryService = inject(ActionFactoryService);\r\n\r\n protected readonly MangaFormat = MangaFormat;\r\n\r\n /**\r\n * Card item url. Will internally handle error and missing covers\r\n */\r\n @Input() imageUrl = '';\r\n /**\r\n * Name of the card\r\n */\r\n @Input() title = '';\r\n /**\r\n * Any actions to perform on the card\r\n */\r\n @Input() actions: ActionItem[] = [];\r\n /**\r\n * Pages Read\r\n */\r\n @Input() read = 0;\r\n /**\r\n * Total Pages\r\n */\r\n @Input() total = 0;\r\n /**\r\n * Suppress library link\r\n */\r\n @Input() suppressLibraryLink = false;\r\n /**\r\n * This is the entity we are representing. It will be returned if an action is executed.\r\n */\r\n @Input({required: true}) entity!: CardEntity;\r\n /**\r\n * If the entity is selected or not.\r\n */\r\n @Input() selected: boolean = false;\r\n /**\r\n * If the entity should show selection code\r\n */\r\n @Input() allowSelection: boolean = false;\r\n /**\r\n * This will suppress the \"cannot read archive warning\" when total pages is 0\r\n */\r\n @Input() suppressArchiveWarning: boolean = false;\r\n /**\r\n * The number of updates/items within the card. If less than 2, will not be shown.\r\n */\r\n @Input() count: number = 0;\r\n /**\r\n * Show a read button. Emits on (readClicked)\r\n */\r\n @Input() showReadButton: boolean = false;\r\n /**\r\n * If overlay is enabled, should the text be centered or not\r\n */\r\n @Input() centerOverlay = false;\r\n /**\r\n * Will generate a button to instantly read\r\n */\r\n @Input() hasReadButton = false;\r\n /**\r\n * A method that if defined will return the url\r\n */\r\n @Input() linkUrl?: string;\r\n /**\r\n * Show the format of the series\r\n */\r\n @Input() showFormat: boolean = true;\r\n /**\r\n * Event emitted when item is clicked\r\n */\r\n @Output() clicked = new EventEmitter();\r\n /**\r\n * When the card is selected.\r\n */\r\n @Output() selection = new EventEmitter();\r\n @Output() readClicked = new EventEmitter();\r\n @ContentChild('subtitle') subtitleTemplate!: TemplateRef;\r\n /**\r\n * Library name item belongs to\r\n */\r\n libraryName: string | undefined = undefined;\r\n libraryId: number | undefined = undefined;\r\n /**\r\n * Format of the entity (only applies to Series)\r\n */\r\n format: MangaFormat = MangaFormat.UNKNOWN;\r\n tooltipTitle: string = this.title;\r\n\r\n /**\r\n * This is the download we get from download service.\r\n */\r\n download$: Observable | null = null;\r\n\r\n /**\r\n * Handles touch events for selection on mobile devices\r\n */\r\n prevTouchTime: number = 0;\r\n /**\r\n * Handles touch events for selection on mobile devices to ensure you aren't touch scrolling\r\n */\r\n prevOffset: number = 0;\r\n selectionInProgress: boolean = false;\r\n\r\n private user: User | undefined;\r\n\r\n ngOnInit(): void {\r\n\r\n if (this.entity.hasOwnProperty('promoted') && this.entity.hasOwnProperty('title')) {\r\n this.suppressArchiveWarning = true;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n if (!this.suppressLibraryLink) {\r\n if (this.entity !== undefined && this.entity.hasOwnProperty('libraryId')) {\r\n this.libraryId = (this.entity as Series).libraryId;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n if (this.libraryId !== undefined && this.libraryId > 0) {\r\n this.libraryService.getLibraryName(this.libraryId).pipe(takeUntilDestroyed(this.destroyRef)).subscribe(name => {\r\n this.libraryName = name;\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n }\r\n this.format = (this.entity as Series).format;\r\n\r\n if (this.utilityService.isChapter(this.entity)) {\r\n const chapter = this.utilityService.asChapter(this.entity);\r\n const chapterTitle = chapter.titleName;\r\n if (chapterTitle === '' || chapterTitle === null || chapterTitle === undefined) {\r\n const volumeTitle = chapter.volumeTitle\r\n if (volumeTitle === '' || volumeTitle === null || volumeTitle === undefined) {\r\n this.tooltipTitle = (this.title).trim();\r\n } else {\r\n this.tooltipTitle = (volumeTitle + ' ' + this.title).trim();\r\n }\r\n } else {\r\n this.tooltipTitle = chapterTitle;\r\n }\r\n } else if (this.utilityService.isVolume(this.entity)) {\r\n const vol = this.utilityService.asVolume(this.entity);\r\n if (vol.chapters !== undefined && vol.chapters.length > 0) {\r\n this.tooltipTitle = vol.chapters[0].titleName;\r\n }\r\n if (this.tooltipTitle === '') {\r\n this.tooltipTitle = vol.name;\r\n }\r\n } else if (this.utilityService.isSeries(this.entity)) {\r\n this.tooltipTitle = this.title || (this.utilityService.asSeries(this.entity).name);\r\n } else if (this.entity.hasOwnProperty('expectedDate')) {\r\n this.suppressArchiveWarning = true;\r\n this.imageUrl = '';\r\n const nextDate = (this.entity as NextExpectedChapter);\r\n\r\n const tokens = nextDate.title.split(':');\r\n // this.overlayInformation = `\r\n // \r\n //
${tokens[0]}
${tokens[1]}
`;\r\n // // todo: figure out where this caller is\r\n this.centerOverlay = true;\r\n\r\n if (nextDate.expectedDate) {\r\n const utcPipe = new UtcToLocalTimePipe();\r\n this.title = '~ ' + utcPipe.transform(nextDate.expectedDate, 'shortDate');\r\n }\r\n\r\n this.cdRef.markForCheck();\r\n } else {\r\n this.tooltipTitle = this.title;\r\n }\r\n\r\n\r\n this.filterSendTo();\r\n this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {\r\n this.user = user;\r\n });\r\n\r\n this.messageHub.messages$.pipe(filter(event => event.event === EVENTS.UserProgressUpdate),\r\n map(evt => evt.payload as UserProgressUpdateEvent), takeUntilDestroyed(this.destroyRef)).subscribe(updateEvent => {\r\n if (this.user === undefined || this.user.username !== updateEvent.username) return;\r\n if (this.utilityService.isChapter(this.entity) && updateEvent.chapterId !== this.entity.id) return;\r\n if (this.utilityService.isVolume(this.entity) && updateEvent.volumeId !== this.entity.id) return;\r\n if (this.utilityService.isSeries(this.entity) && updateEvent.seriesId !== this.entity.id) return;\r\n\r\n // For volume or Series, we can't just take the event\r\n if (this.utilityService.isChapter(this.entity)) {\r\n const c = this.utilityService.asChapter(this.entity);\r\n c.pagesRead = updateEvent.pagesRead;\r\n this.read = updateEvent.pagesRead;\r\n }\r\n if (this.utilityService.isVolume(this.entity) || this.utilityService.isSeries(this.entity)) {\r\n if (this.utilityService.isVolume(this.entity)) {\r\n const v = this.utilityService.asVolume(this.entity);\r\n let sum = 0;\r\n const chapters = v.chapters.filter(c => c.volumeId === updateEvent.volumeId);\r\n chapters.forEach(chapter => {\r\n chapter.pagesRead = updateEvent.pagesRead;\r\n sum += chapter.pagesRead;\r\n });\r\n v.pagesRead = sum;\r\n this.read = sum;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n });\r\n\r\n this.download$ = this.downloadService.activeDownloads$.pipe(takeUntilDestroyed(this.destroyRef), map((events) => {\r\n return this.downloadService.mapToEntityType(events, this.entity);\r\n }));\r\n }\r\n\r\n\r\n @HostListener('touchmove', ['$event'])\r\n onTouchMove(event: TouchEvent) {\r\n if (!this.allowSelection) return;\r\n\r\n this.selectionInProgress = false;\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n @HostListener('touchstart', ['$event'])\r\n onTouchStart(event: TouchEvent) {\r\n if (!this.allowSelection) return;\r\n\r\n this.prevTouchTime = event.timeStamp;\r\n this.prevOffset = this.scrollService.scrollPosition;\r\n this.selectionInProgress = true;\r\n }\r\n\r\n @HostListener('touchend', ['$event'])\r\n onTouchEnd(event: TouchEvent) {\r\n if (!this.allowSelection) return;\r\n const delta = event.timeStamp - this.prevTouchTime;\r\n const verticalOffset = this.scrollService.scrollPosition;\r\n\r\n if (delta >= 300 && delta <= 1000 && (verticalOffset === this.prevOffset) && this.selectionInProgress) {\r\n this.handleSelection();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n this.prevTouchTime = 0;\r\n this.selectionInProgress = false;\r\n }\r\n\r\n\r\n handleClick(event?: any) {\r\n if (this.bulkSelectionService.hasSelections()) {\r\n this.handleSelection();\r\n return;\r\n }\r\n this.clicked.emit(this.title);\r\n }\r\n\r\n preventClick(event: any) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n performAction(action: ActionItem) {\r\n if (action.action == Action.Download) {\r\n if (this.utilityService.isVolume(this.entity)) {\r\n const volume = this.utilityService.asVolume(this.entity);\r\n this.downloadService.download('volume', volume);\r\n } else if (this.utilityService.isChapter(this.entity)) {\r\n const chapter = this.utilityService.asChapter(this.entity);\r\n this.downloadService.download('chapter', chapter);\r\n } else if (this.utilityService.isSeries(this.entity)) {\r\n const series = this.utilityService.asSeries(this.entity);\r\n this.downloadService.download('series', series);\r\n }\r\n return; // Don't propagate the download from a card\r\n }\r\n\r\n if (typeof action.callback === 'function') {\r\n action.callback(action, this.entity);\r\n }\r\n }\r\n\r\n\r\n isPromoted() {\r\n const tag = this.entity as UserCollection;\r\n return tag.hasOwnProperty('promoted') && tag.promoted;\r\n }\r\n\r\n\r\n handleSelection(event?: any) {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n this.selection.emit(this.selected);\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n filterSendTo() {\r\n if (!this.actions || this.actions.length === 0) return;\r\n\r\n if (this.utilityService.isChapter(this.entity)) {\r\n this.actions = this.actionFactoryService.filterSendToAction(this.actions, this.entity as Chapter);\r\n } else if (this.utilityService.isVolume(this.entity)) {\r\n const vol = this.utilityService.asVolume(this.entity);\r\n this.actions = this.actionFactoryService.filterSendToAction(this.actions, vol.chapters[0]);\r\n } else if (this.utilityService.isSeries(this.entity)) {\r\n const series = (this.entity as Series);\r\n // if (series.format === MangaFormat.EPUB || series.format === MangaFormat.PDF) {\r\n // this.actions = this.actions.filter(a => a.title !== 'Send To');\r\n // }\r\n }\r\n\r\n // this.actions = this.actions.filter(a => {\r\n // if (!a.isAllowed) return true;\r\n // return a.isAllowed(a, this.entity);\r\n // });\r\n }\r\n\r\n clickRead(event: any) {\r\n event.stopPropagation();\r\n if (this.bulkSelectionService.hasSelections()) return;\r\n\r\n this.readClicked.emit(this.entity);\r\n }\r\n}\r\n", "\r\n
\r\n
\r\n @if (total > 0 || suppressArchiveWarning) {\r\n \r\n } @else if (total === 0 && !suppressArchiveWarning) {\r\n \r\n }\r\n\r\n
\r\n @if (read > 0 && read < total && total > 0 && read !== total) {\r\n

\r\n \r\n

\r\n }\r\n\r\n \r\n \r\n \r\n
\r\n\r\n @if(total === 0 && !suppressArchiveWarning) {\r\n
\r\n {{t('cannot-read')}}\r\n
\r\n }\r\n\r\n @if (read === 0 && total > 0) {\r\n
\r\n
\r\n
\r\n }\r\n\r\n @if (allowSelection) {\r\n
\r\n \r\n
\r\n }\r\n\r\n @if (count > 1) {\r\n
\r\n {{count | compactNumber}}\r\n
\r\n }\r\n\r\n
\r\n\r\n @if (showReadButton) {\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n @if (subtitleTemplate) {\r\n
\r\n \r\n
\r\n }\r\n @if (!suppressLibraryLink && libraryName) {\r\n \r\n {{libraryName | sentenceCase}}\r\n \r\n }\r\n
\r\n @if (title.length > 0 || actions.length > 0) {\r\n
\r\n \r\n @if (showFormat) {\r\n \r\n \r\n \r\n }\r\n \r\n\r\n \r\n @if (isPromoted(); as isPromoted) {\r\n \r\n }\r\n @if (linkUrl) {\r\n {{title}}\r\n } @else {\r\n {{title}}\r\n }\r\n \r\n\r\n \r\n @if (actions && actions.length > 0) {\r\n \r\n }\r\n \r\n
\r\n }\r\n
\r\n\r\n
\r\n"], "mappings": "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", "names": ["\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275pureFunction0", "_c1", "ctx_r1", "imageUrl", "imageService", "errorImage", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275propertyInterpolate1", "\u0275\u0275pipeBind2", "read", "total", "\u0275\u0275advance", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "t_r3", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r4", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelection", "\u0275\u0275classMapInterpolate1", "bulkSelectionService", "hasSelections", "\u0275\u0275attributeInterpolate2", "title", "entity", "id", "selected", "_c2", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "count", "_r5", "clickRead", "\u0275\u0275elementContainer", "subtitleTemplate", "\u0275\u0275pureFunction1", "_c3", "_c4", "libraryId", "libraryName", "format", "ctx", "linkUrl", "_r7", "performAction", "actions", "\u0275\u0275template", "CardItemComponent_ng_container_0_Conditional_18_Conditional_2_Template", "_r6", "handleClick", "CardItemComponent_ng_container_0_Conditional_18_Conditional_4_Template", "CardItemComponent_ng_container_0_Conditional_18_Conditional_5_Template", "CardItemComponent_ng_container_0_Conditional_18_Conditional_6_Template", "CardItemComponent_ng_container_0_Conditional_18_Conditional_8_Template", "\u0275\u0275conditional", "showFormat", "\u0275\u0275propertyInterpolate2", "tooltipTitle", "tmp_6_0", "isPromoted", "length", "\u0275\u0275elementContainerStart", "_r1", "CardItemComponent_ng_container_0_Conditional_3_Template", "CardItemComponent_ng_container_0_Conditional_4_Template", "CardItemComponent_ng_container_0_Conditional_6_Template", "CardItemComponent_ng_container_0_Conditional_9_Template", "CardItemComponent_ng_container_0_Conditional_10_Template", "CardItemComponent_ng_container_0_Conditional_11_Template", "CardItemComponent_ng_container_0_Conditional_12_Template", "CardItemComponent_ng_container_0_Conditional_14_Template", "CardItemComponent_ng_container_0_Conditional_16_Template", "CardItemComponent_ng_container_0_Conditional_17_Template", "CardItemComponent_ng_container_0_Conditional_18_Template", "suppressArchiveWarning", "download$", "allowSelection", "showReadButton", "suppressLibraryLink", "CardItemComponent", "constructor", "destroyRef", "inject", "DestroyRef", "ImageService", "BulkSelectionService", "libraryService", "LibraryService", "downloadService", "DownloadService", "utilityService", "UtilityService", "messageHub", "MessageHubService", "accountService", "AccountService", "scrollService", "ScrollService", "cdRef", "ChangeDetectorRef", "actionFactoryService", "ActionFactoryService", "MangaFormat", "centerOverlay", "hasReadButton", "clicked", "EventEmitter", "selection", "readClicked", "undefined", "UNKNOWN", "prevTouchTime", "prevOffset", "selectionInProgress", "ngOnInit", "hasOwnProperty", "markForCheck", "getLibraryName", "pipe", "takeUntilDestroyed", "subscribe", "name", "isChapter", "chapter", "asChapter", "chapterTitle", "titleName", "volumeTitle", "trim", "isVolume", "vol", "asVolume", "chapters", "isSeries", "asSeries", "nextDate", "tokens", "split", "expectedDate", "utcPipe", "UtcToLocalTimePipe", "transform", "filterSendTo", "currentUser$", "user", "messages$", "filter", "event", "EVENTS", "UserProgressUpdate", "map", "evt", "payload", "updateEvent", "username", "chapterId", "volumeId", "seriesId", "c", "pagesRead", "v", "sum", "forEach", "detectChanges", "activeDownloads$", "events", "mapToEntityType", "onTouchMove", "onTouchStart", "timeStamp", "scrollPosition", "onTouchEnd", "delta", "verticalOffset", "stopPropagation", "preventDefault", "emit", "preventClick", "action", "Action", "Download", "volume", "download", "series", "callback", "tag", "promoted", "filterSendToAction", "selectors", "contentQueries", "rf", "dirIndex", "CardItemComponent_ng_container_0_Template", "ImageComponent", "NgbProgressbar", "DownloadIndicatorComponent", "FormsModule", "CheckboxControlValueAccessor", "NgControlStatus", "NgModel", "NgbTooltip", "CardActionablesComponent", "SentenceCasePipe", "RouterLink", "TranslocoModule", "TranslocoDirective", "RouterLinkActive", "PromotedIconComponent", "SeriesFormatComponent", "DecimalPipe", "NgTemplateOutlet", "CompactNumberPipe", "styles", "changeDetection"] }