@project-sunbird/sunbird-epub-player-v9
Version:
The Epub player library is powered by Angular. This player is primarily designed to be used on Sunbird consumption platforms _(mobile app, web portal, offline desktop app)_ to drive reusability and maintainability, hence reducing the redundant development
1 lines • 65.7 kB
Source Map (JSON)
{"version":3,"file":"project-sunbird-sunbird-epub-player-v9.mjs","sources":["../../../projects/sunbird-epub-player/src/lib/sunbird-epub.constant.ts","../../../projects/sunbird-epub-player/src/lib/services/utilService/util.service.ts","../../../projects/sunbird-epub-player/src/lib/sunbird-epub-player.service.ts","../../../projects/sunbird-epub-player/src/lib/services/viewerService/viwer-service.ts","../../../projects/sunbird-epub-player/src/lib/epub-viewer/epub-viewer.component.ts","../../../projects/sunbird-epub-player/src/lib/epub-viewer/epub-viewer.component.html","../../../projects/sunbird-epub-player/src/lib/sunbird-epub-player.component.html","../../../projects/sunbird-epub-player/src/lib/sunbird-epub-player.component.ts","../../../projects/sunbird-epub-player/src/lib/sunbird-epub-player.module.ts","../../../projects/sunbird-epub-player/src/public-api.ts","../../../projects/sunbird-epub-player/src/project-sunbird-sunbird-epub-player-v9.ts"],"sourcesContent":["export enum epubPlayerConstants {\n LOADING = 'LOADING',\n START = 'START',\n END = 'END',\n EPUBLOADED = 'epubLoaded',\n PAGECHANGE = 'pageChange',\n NEXT = 'NEXT',\n PREVIOUS = 'PREVIOUS',\n ERROR = 'error',\n UNABLE_TO_FETCH_URL_ONLINE = 'Internet is avialable but unable to fetch the url',\n NAVIGATE_TO_PAGE = 'NAVIGATE_TO_PAGE',\n INVALID_PAGE_ERROR = 'INVALID_PAGE_ERROR'\n\n}\n\nexport enum telemetryType {\n INTERACT = 'INTERACT',\n IMPRESSION = 'IMPRESSION'\n}\n","import { Injectable } from '@angular/core';\nimport { epubPlayerConstants } from '../../sunbird-epub.constant';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilService {\n fromConst = epubPlayerConstants;\n\n constructor() { }\n\n public uniqueId(length = 32) {\n let result = '';\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n }\n\n public getTimeSpentText(pdfPlayerStartTime) {\n const duration = new Date().getTime() - pdfPlayerStartTime;\n const minutes = Math.floor(duration / 60000);\n const seconds = Number(((duration % 60000) / 1000).toFixed(0));\n return (minutes + ':' + (seconds < 10 ? '0' : '') + seconds);\n }\n\n getCurrentIndex(event , currentPageIndex) {\n if (event?.interaction === this.fromConst.NEXT) {\n return currentPageIndex + 1;\n }\n if (event?.interaction === this.fromConst.PREVIOUS) {\n return currentPageIndex - 1 === 0 ? 1 : currentPageIndex - 1;\n }\n }\n\n async fulfillWithTimeLimit(timeLimit: number, task: Promise<any>, failureValue: any): Promise<any> {\n let timeout;\n const timeoutPromise = new Promise((resolve, reject) => {\n timeout = setTimeout(() => {\n resolve(failureValue);\n }, timeLimit);\n });\n const response = await Promise.race([task, timeoutPromise]);\n if (timeout) {\n clearTimeout(timeout);\n }\n return response;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { UtilService } from './services/utilService/util.service';\nimport { CsTelemetryModule } from '@project-sunbird/client-services/telemetry';\nimport { PlayerConfig } from './sunbird-epub-player.interface';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EpubPlayerService {\n\n private contentSessionId: string;\n private playSessionId: string;\n private telemetryObject: any;\n private context;\n public config;\n public channel: string;\n public pdata: string;\n public sid: string;\n public uid: string;\n public rollup: string;\n\n\n constructor(private utilService: UtilService) {\n this.contentSessionId = this.utilService.uniqueId();\n }\n\n public initialize({ context, config, metadata }: PlayerConfig) {\n this.context = context;\n this.config = config;\n this.playSessionId = this.utilService.uniqueId();\n this.channel = this.context.channel;\n this.pdata = this.context.pdata;\n this.sid = this.context.sid;\n this.uid = this.context.uid;\n this.rollup = this.context.rollup;\n\n if (!CsTelemetryModule.instance.isInitialised) {\n CsTelemetryModule.instance.init({});\n const telemetryConfig: any = {\n config: {\n pdata: context.pdata,\n env: 'contentplayer',\n channel: context.channel,\n did: context.did,\n authtoken: context.authToken || '',\n uid: context.uid || '',\n sid: context.sid,\n batchsize: 20,\n mode: context.mode,\n host: context.host || '',\n endpoint: context.endpoint || '/data/v3/telemetry',\n tags: context.tags,\n cdata: [{ id: this.contentSessionId, type: 'ContentSession' },\n { id: this.playSessionId, type: 'PlaySession' },\n {id: '2.0' , type: 'PlayerVersion'}],\n },\n userOrgDetails: {}\n };\n if (context.dispatcher) {\n telemetryConfig.config.dispatcher = context.dispatcher;\n }\n CsTelemetryModule.instance.telemetryService.initTelemetry(telemetryConfig);\n }\n\n this.telemetryObject = {\n id: metadata.identifier,\n type: 'Content',\n ver: metadata.pkgVersion + '' || '1.0',\n rollup: context.objectRollup || {}\n };\n }\n\n public start(duration) {\n CsTelemetryModule.instance.telemetryService.raiseStartTelemetry(\n {\n options: this.getEventOptions(),\n edata: { type: 'content', mode: 'play', pageid: '', duration: Number((duration / 1e3).toFixed(2)) }\n }\n );\n\n }\n\n public interact(id, currentPage) {\n CsTelemetryModule.instance.telemetryService.raiseInteractTelemetry({\n options: this.getEventOptions(),\n edata: { type: 'TOUCH', subtype: '', id, pageid: currentPage + '' }\n });\n }\n\n public impression(currentPage) {\n CsTelemetryModule.instance.telemetryService.raiseImpressionTelemetry({\n options: this.getEventOptions(),\n edata: { type: 'workflow', subtype: '', pageid: currentPage + '', uri: '' }\n });\n }\n\n public end(duration, percentage, curentPage, endpageseen) {\n const durationSec = Number((duration / 1e3).toFixed(2));\n CsTelemetryModule.instance.telemetryService.raiseEndTelemetry({\n edata: {\n type: 'content',\n mode: 'play',\n pageid: 'sunbird-player-Endpage',\n summary: [\n {\n progress: percentage\n },\n {\n totallength: (percentage === 100 ? curentPage : 1)\n },\n {\n visitedlength: curentPage\n },\n {\n visitedcontentend: (percentage === 100)\n },\n {\n totalseekedlength: 0\n },\n {\n endpageseen\n }\n ],\n duration: durationSec\n },\n options: this.getEventOptions()\n });\n\n }\n\n public error(errorCode: string, errorType: string , pageid , stacktrace ) {\n CsTelemetryModule.instance.telemetryService.raiseErrorTelemetry({\n options: this.getEventOptions(),\n edata: {\n err: errorCode,\n errtype: errorType,\n stacktrace: stacktrace.toString(),\n pageid : pageid || ''\n }\n });\n }\n\n private getEventOptions() {\n return ({\n object: this.telemetryObject,\n context: {\n channel: this.channel,\n pdata: this.pdata,\n env: 'contentplayer',\n sid: this.sid,\n uid: this.uid,\n cdata: [{ id: this.contentSessionId, type: 'ContentSession' },\n { id: this.playSessionId, type: 'PlaySession' },\n {id: '2.0' , type: 'PlayerVersion'}],\n rollup: this.rollup || {}\n }\n });\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { PlayerConfig } from '../../sunbird-epub-player.interface';\nimport { EpubPlayerService } from '../../sunbird-epub-player.service';\nimport { UtilService } from '../utilService/util.service';\nimport { telemetryType } from '../../sunbird-epub.constant';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViwerService {\n\n public currentIndex = 0;\n public totalNumberOfPages = 0;\n public epubPlayerStartTime: number;\n public epubLastPageTime: number;\n public endPageSeen = false;\n public timeSpent = '0:0';\n private version = '1.0';\n public playerEvent = new EventEmitter<any>();\n public contentName: string;\n public loadingProgress: number;\n public showDownloadPopup: boolean;\n public src: string;\n public userName: string;\n public metaData: any;\n public identifier: any;\n public artifactUrl: any;\n public isAvailableLocally = false;\n public isEndEventRaised = false;\n constructor(\n private utilService: UtilService,\n private epubPlayerService: EpubPlayerService,\n private http: HttpClient\n ) { }\n\n initialize({ context, config, metadata }: PlayerConfig) {\n this.epubPlayerStartTime = this.epubLastPageTime = new Date().getTime();\n this.totalNumberOfPages = 0;\n this.currentIndex = 0;\n this.contentName = metadata.name;\n this.identifier = metadata.identifier;\n this.artifactUrl = metadata.artifactUrl;\n this.isAvailableLocally = metadata.isAvailableLocally;\n if (this.isAvailableLocally) {\n const basePath = (metadata.streamingUrl) ? (metadata.streamingUrl) : (metadata.basePath || metadata.baseDir);\n this.src = `${basePath}/${metadata.artifactUrl}`;\n } else {\n this.src = metadata.streamingUrl || metadata.artifactUrl;\n }\n if (context.userData) {\n const { userData: { firstName, lastName } } = context;\n this.userName = firstName === lastName ? firstName : `${firstName} ${lastName}`;\n }\n this.metaData = {\n pagesVisited: [],\n totalPages: 0,\n duration: [],\n zoom: [],\n rotation: []\n };\n this.showDownloadPopup = false;\n this.endPageSeen = false;\n }\n\n raiseStartEvent(event) {\n this.currentIndex = event.items[0].index;\n const duration = new Date().getTime() - this.epubPlayerStartTime;\n const startEvent = {\n eid: 'START',\n ver: this.version,\n edata: {\n type: 'START',\n currentPage: this.currentIndex,\n duration\n },\n metaData: this.metaData\n };\n this.playerEvent.emit(startEvent);\n this.epubLastPageTime = this.epubPlayerStartTime = new Date().getTime();\n this.epubPlayerService.start(duration);\n }\n\n raiseHeartBeatEvent(event, teleType?) {\n if (event.data) {\n this.currentIndex = event.data.index;\n }\n const eventType = event.type ? event.type : event;\n const heartBeatEvent = {\n eid: 'HEARTBEAT',\n ver: this.version,\n edata: {\n type: eventType,\n currentPage: this.currentIndex\n },\n metaData: this.metaData\n };\n this.playerEvent.emit(heartBeatEvent);\n if (telemetryType.IMPRESSION === teleType) {\n this.epubPlayerService.impression(this.currentIndex);\n }\n if (telemetryType.INTERACT === teleType) {\n this.epubPlayerService.interact(eventType.toLowerCase(), this.currentIndex);\n }\n }\n\n raiseEndEvent(event) {\n if (!this.isEndEventRaised) {\n this.currentIndex = event.data.index;\n const percentage = event.data.percentage || 0;\n if (event.data.percentage) {\n this.endPageSeen = true;\n }\n const duration = new Date().getTime() - this.epubPlayerStartTime;\n this.metaData.duration = duration;\n this.metaData.totalPages = this.totalNumberOfPages;\n const endEvent = {\n eid: 'END',\n ver: this.version,\n edata: {\n type: 'END',\n currentPage: event.data.index,\n totalPages: this.totalNumberOfPages,\n duration\n },\n metaData: this.metaData\n };\n this.playerEvent.emit(endEvent);\n const visitedlength = this.currentIndex;\n this.timeSpent = this.utilService.getTimeSpentText(this.epubPlayerStartTime);\n this.epubPlayerService.end(duration, percentage, this.currentIndex, this.endPageSeen);\n }\n }\n\n\n raiseExceptionLog(errorCode: string , pageIndex, errorType: string , traceId , stacktrace: Error ) {\n const exceptionLogEvent = {\n eid: 'ERROR',\n edata: {\n err: errorCode,\n errtype: errorType,\n requestid: traceId || '',\n stacktrace\n }\n };\n this.playerEvent.emit(exceptionLogEvent);\n this.epubPlayerService.error(errorCode , errorType, pageIndex , stacktrace);\n }\n\n isValidEpubSrc(src): Promise<Blob> {\n return new Promise(async (resolve , reject) => {\n this.http.get(src, { responseType: 'blob' }).toPromise().then((res) => {\n resolve(res);\n }).catch((error) => {\n reject(error);\n });\n });\n }\n}\n","import { AfterViewInit, ViewChild, Component, ElementRef, Input,\n EventEmitter, Output, OnInit, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';\nimport Epub from 'epubjs';\nimport { ViwerService } from '../services/viewerService/viwer-service';\nimport { epubPlayerConstants as fromConst } from '../sunbird-epub.constant';\nimport { errorCode, errorMessage } from '@project-sunbird/sunbird-player-sdk-v9';\nimport { UtilService } from '../services/utilService/util.service';\n\nconst MAX_TIME_TO_LOAD_SPINE = 5 * 60 * 1000; // 5 minutes\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'epub-viewer',\n templateUrl: './epub-viewer.component.html',\n styleUrls: ['./epub-viewer.component.css']\n})\nexport class EpubViewerComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n eBook: any;\n rendition: any;\n lastSection: any;\n scrolled: boolean;\n @ViewChild('epubViewer', { static: true }) epubViewer: ElementRef;\n @Input() epubSrc: string;\n @Input() config: any;\n @Input() identifier: string;\n @Input() actions = new EventEmitter<any>();\n @Input() showFullScreen = false;\n @Output() viewerEvent = new EventEmitter<any>();\n idForRendition: any;\n epubBlob: object;\n\n constructor(\n public viwerService: ViwerService,\n private utilService: UtilService\n ) { }\n ngOnInit() {\n this.idForRendition = `${this.identifier}-content`;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.rendition && !changes?.showFullScreen?.firstChange) {\n this.rendition.resize();\n }\n }\n\n async ngAfterViewInit() {\n try {\n if (!this.viwerService.isAvailableLocally) {\n this.epubBlob = await this.viwerService.isValidEpubSrc(this.epubSrc);\n this.eBook = Epub(this.epubBlob);\n } else if (this.viwerService.isAvailableLocally) {\n this.eBook = Epub(this.epubSrc);\n }\n this.rendition = this.eBook.renderTo(this.idForRendition, {\n flow: 'paginated',\n width: '100%',\n });\n this.rendition.on('layout', (layout) => {\n this.viwerService.totalNumberOfPages = this.eBook?.navigation?.length;\n if (this.eBook.navigation.length > 2) {\n this.rendition.spread('none');\n this.rendition.flow('scrolled');\n this.scrolled = true;\n } else {\n this.rendition.spread('auto');\n this.scrolled = false;\n }\n });\n\n this.rendition.on('displayError', (error) => {\n this.emitErrorEvent();\n });\n\n const spine = await this.utilService.fulfillWithTimeLimit(MAX_TIME_TO_LOAD_SPINE, this.eBook.loaded.spine, null);\n\n if (spine) {\n this.displayEpub();\n this.lastSection = spine.last();\n this.viewerEvent.emit({\n type: fromConst.EPUBLOADED,\n data: spine\n });\n this.handleActions(spine);\n } else {\n this.emitErrorEvent();\n }\n } catch (error) {\n this.emitErrorEvent();\n }\n }\n\n displayEpub() {\n const { currentLocation } = this.config;\n if (!currentLocation) {\n this.rendition.display();\n }\n this.eBook.ready.then(() => {\n return this.eBook.locations.generate(1000);\n }).then((locations) => {\n const totalPages = this.eBook?.spine?.length;\n this.viwerService.totalNumberOfPages = totalPages ? (totalPages - 1) : 0;\n if (currentLocation) {\n const cfi = this.eBook.locations.cfiFromPercentage(Number(currentLocation));\n this.rendition.display(cfi);\n }\n });\n }\n\n handleActions(spine) {\n this.actions.subscribe((event) => {\n const type = event.type;\n if (this.rendition?.location?.start) {\n const data = this.rendition.location.start;\n if (this.scrolled && data.href === this.lastSection.href) {\n this.viwerService.metaData.currentLocation = 0;\n this.emitEndEvent();\n } else {\n if (this.rendition.location.atEnd || (spine.length === 1 &&\n (this.rendition.location.end.displayed.page + 1 >= this.rendition.location.end.displayed.total))) {\n this.viwerService.metaData.currentLocation = 0;\n this.emitEndEvent();\n }\n }\n if (type === fromConst.NEXT) {\n this.rendition.next().then(() => {\n this.saveCurrentLocation();\n this.viewerEvent.emit({\n type: fromConst.PAGECHANGE,\n data,\n interaction: fromConst.NEXT\n });\n });\n } else if (type === fromConst.PREVIOUS) {\n this.rendition.prev().then(() => {\n this.saveCurrentLocation();\n this.viewerEvent.emit({\n type: fromConst.PAGECHANGE,\n data,\n interaction: fromConst.PREVIOUS\n });\n });\n }\n if (type === fromConst.NAVIGATE_TO_PAGE) {\n this.rendition.display(event.data);\n this.viewerEvent.emit({\n type: fromConst.NAVIGATE_TO_PAGE,\n event,\n interaction: fromConst.NAVIGATE_TO_PAGE\n });\n }\n\n if (type === fromConst.INVALID_PAGE_ERROR) {\n this.viewerEvent.emit({\n type: fromConst.INVALID_PAGE_ERROR,\n event,\n interaction: fromConst.INVALID_PAGE_ERROR\n });\n }\n }\n });\n }\n\n saveCurrentLocation() {\n const currentLocation = this.rendition.currentLocation();\n if (currentLocation?.start?.cfi) {\n // Get the Percentage (or location) from that CFI\n const currentPageLocation = this.eBook.locations.percentageFromCfi(currentLocation.start.cfi);\n this.viwerService.metaData.currentLocation = currentPageLocation;\n }\n }\n\n emitEndEvent() {\n this.viewerEvent.emit({\n type: fromConst.END,\n data: {\n percentage: 100\n }\n });\n }\n\n emitErrorEvent() {\n this.viewerEvent.emit({\n type: fromConst.ERROR,\n errorCode: errorCode.contentLoadFails,\n errorMessage: errorMessage.contentLoadFails\n });\n }\n\n ngOnDestroy() {\n this.eBook?.destroy();\n }\n}\n","<div class=\"rendition\" [id]=\"idForRendition\" #epubViewer></div>","<div class=\"sunbird-epub-container\" #epubPlayer>\n<div *ngIf=\"viewState === fromConst.LOADING\">\n <sb-player-start-page [title]=\"viwerService.contentName\" [progress]=\"progress\"></sb-player-start-page>\n</div>\n<div class=\"epub-container\" *ngIf=\"showEpubViewer\">\n <ng-container *ngIf=\"viewState === fromConst.START\">\n <sb-player-header class=\"notVisible\" [totalPages]=\"viwerService?.totalNumberOfPages\" [pageNumber]=\"currentPageIndex\" [config]=\"headerConfiguration\" (actions)=\"headerActions($event)\" [ngClass]=\"{'isVisible': showControls}\"></sb-player-header>\n <sb-player-side-menu-icon class=\"notVisible\" [ngClass]=\"{'isVisible': showControls}\" (sidebarMenuEvent)=\"sidebarMenuEvent($event)\">\n </sb-player-side-menu-icon>\n <sb-player-sidebar [title]=\"viwerService.contentName\" (sidebarEvent)=\"sideBarEvents($event)\"\n [config]=\"sideMenuConfig\"></sb-player-sidebar>\n <div class=\"sb-epub-reading-status\" *ngIf=\"currentPageIndex && viwerService?.totalNumberOfPages\">\n Page {{currentPageIndex}} of {{viwerService?.totalNumberOfPages}} <span></span> {{((currentPageIndex/viwerService?.totalNumberOfPages) * 100).toFixed(0)}}%\n </div>\n \n </ng-container>\n <epub-viewer [actions]=\"headerActionsEvent\" [epubSrc]=\"viwerService.src\" [identifier]=\"viwerService.identifier\"\n (viewerEvent)=\"viewerEvent($event)\" [config]=\"playerConfig.config\" [showFullScreen]=\"showFullScreen\">\n </epub-viewer>\n</div>\n<sb-player-end-page *ngIf=\"viewState === fromConst.END\" [contentName]=\"viwerService.contentName\"\n [outcomeLabel]=\"'Pages read: '\" [outcome]=\"(currentPageIndex -1)\" [showExit]=\"sideMenuConfig.showExit\" [userName]=\"viwerService.userName\"\n [timeSpentLabel]=\"viwerService.timeSpent\" (replayContent)=\"replayContent($event)\" (exitContent)=\"exitContent($event)\">\n</sb-player-end-page>\n<sb-player-contenterror *ngIf=\"showContentError\"></sb-player-contenterror>\n</div>\n<div class=\"pagenotfound__tooltip\" *ngIf=\"!validPage\">\n <div class=\"pagenotfound__icon\"></div>\n <div class=\"pagenotfound__text\">Page Not Found</div>\n</div>\n","import { EventEmitter, Component, Output, Input, OnInit, HostListener,\n OnDestroy, ElementRef, ViewChild, AfterViewInit, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\nimport { ViwerService } from './services/viewerService/viwer-service';\nimport { PlayerConfig } from './sunbird-epub-player.interface';\nimport { EpubPlayerService } from './sunbird-epub-player.service';\nimport { epubPlayerConstants, telemetryType } from './sunbird-epub.constant';\nimport { ErrorService, errorCode, errorMessage } from '@project-sunbird/sunbird-player-sdk-v9';\nimport { UtilService } from './services/utilService/util.service';\n\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'sunbird-epub-player',\n templateUrl: './sunbird-epub-player.component.html',\n styleUrls: ['./sunbird-epub-player.component.scss']\n})\nexport class EpubPlayerComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n fromConst = epubPlayerConstants;\n @ViewChild('epubPlayer', { static: true }) epubPlayerRef: ElementRef;\n @Input() playerConfig: PlayerConfig;\n @Input() showFullScreen = false;\n @Output() headerActionsEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() telemetryEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() playerEvent: EventEmitter<object>;\n private unlistenMouseEnter: () => void;\n private unlistenMouseLeave: () => void;\n public showControls = true;\n public validPage = true;\n showContentError: boolean;\n sideMenuConfig = {\n showShare: false,\n showDownload: false,\n showReplay: false,\n showExit: false,\n showPrint: false\n };\n public isInitialized = false;\n viewState = this.fromConst.LOADING;\n intervalRef: any;\n progress = 0;\n showEpubViewer: boolean;\n public traceId: string;\n currentPageIndex = 1;\n headerConfiguration = {\n rotation: false,\n goto: true,\n navigation: true,\n zoom: false\n };\n\n constructor(\n public viwerService: ViwerService,\n private epubPlayerService: EpubPlayerService,\n public errorService: ErrorService,\n public utilService: UtilService,\n private renderer2: Renderer2\n ) {\n this.playerEvent = this.viwerService.playerEvent;\n }\n\n @HostListener('document:TelemetryEvent', ['$event'])\n onTelemetryEvent(event) {\n this.telemetryEvent.emit(event.detail);\n }\n\n async ngOnInit() {\n this.isInitialized = true;\n if (this.playerConfig) {\n if (typeof this.playerConfig === 'string') {\n try {\n this.playerConfig = JSON.parse(this.playerConfig);\n } catch (error) {\n console.error('Invalid playerConfig: ', error);\n }\n }\n // initializing services\n this.viwerService.initialize(this.playerConfig);\n this.epubPlayerService.initialize(this.playerConfig);\n this.traceId = this.playerConfig?.config?.traceId;\n // checks online error while loading epub\n if (!navigator.onLine && !this.viwerService.isAvailableLocally) {\n // eslint-disable-next-line max-len\n this.viwerService.raiseExceptionLog(errorCode.internetConnectivity, this.currentPageIndex, errorMessage.internetConnectivity, this.traceId, new Error(errorMessage.internetConnectivity));\n }\n\n // checks content compatibility error\n const contentCompabilityLevel = this.playerConfig?.metadata?.compatibilityLevel;\n if (contentCompabilityLevel) {\n const checkContentCompatible = this.errorService.checkContentCompatibility(contentCompabilityLevel);\n if (!checkContentCompatible?.isCompitable) {\n // eslint-disable-next-line max-len\n this.viwerService.raiseExceptionLog(errorCode.contentCompatibility, this.currentPageIndex, errorCode.contentCompatibility, this.traceId, checkContentCompatible.error);\n }\n }\n\n this.showEpubViewer = true;\n this.sideMenuConfig = { ...this.sideMenuConfig, ...this.playerConfig.config.sideMenu };\n this.getEpubLoadingProgress();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.showFullScreen && !changes?.showFullScreen?.firstChange) {\n this.showFullScreen = changes.showFullScreen.currentValue;\n }\n if (changes.playerConfig.firstChange && this.isInitialized) {\n // Calling for web component explicitly and life cycle works in different order\n this.ngOnInit();\n }\n }\n ngAfterViewInit() {\n const epubPlayerElement = this.epubPlayerRef.nativeElement;\n this.unlistenMouseEnter = this.renderer2.listen(epubPlayerElement, 'mouseenter', () => {\n this.showControls = true;\n });\n\n this.unlistenMouseLeave = this.renderer2.listen(epubPlayerElement, 'mouseleave', () => {\n this.showControls = false;\n });\n }\n\n headerActions(eventdata) {\n this.headerActionsEvent.emit(eventdata);\n }\n\n viewerEvent(event) {\n if (event.type === this.fromConst.EPUBLOADED) {\n this.onEpubLoaded(event);\n }\n if (event.type === this.fromConst.PAGECHANGE) {\n this.onPageChange(event);\n }\n if (event.type === this.fromConst.END) {\n this.onEpubEnded(event);\n }\n if (event.type === this.fromConst.ERROR) {\n this.onEpubLoadFailed(event);\n }\n if (event.type === this.fromConst.NAVIGATE_TO_PAGE) {\n this.onJumpToPage(event);\n }\n if (event.type === this.fromConst.INVALID_PAGE_ERROR) {\n this.validPage = event.data;\n this.resetValidPage();\n }\n }\n\n resetValidPage() {\n setTimeout(() => {\n this.validPage = true;\n }, 5000);\n }\n\n onEpubLoaded(event) {\n clearInterval(this.intervalRef);\n this.viewState = this.fromConst.START;\n this.viwerService.raiseStartEvent(event.data);\n\n if (this.playerConfig.config?.pagesVisited?.length && this.playerConfig.config?.currentLocation) {\n this.currentPageIndex = this.playerConfig.config.pagesVisited[this.playerConfig.config.pagesVisited.length - 1];\n }\n this.viwerService.metaData.pagesVisited.push(this.currentPageIndex);\n }\n\n onPageChange(event) {\n if (event?.data?.index) {\n this.currentPageIndex = event.data.index;\n }\n this.currentPageIndex = this.utilService.getCurrentIndex(event, this.currentPageIndex);\n this.viwerService.raiseHeartBeatEvent(event, telemetryType.INTERACT);\n this.viwerService.raiseHeartBeatEvent(event, telemetryType.IMPRESSION);\n this.viwerService.metaData.pagesVisited.push(this.currentPageIndex);\n }\n\n onJumpToPage(type) {\n this.currentPageIndex = type?.event?.data;\n this.viwerService.raiseHeartBeatEvent(type, telemetryType.INTERACT);\n this.viwerService.raiseHeartBeatEvent(type, telemetryType.IMPRESSION);\n this.viwerService.metaData.pagesVisited.push(this.currentPageIndex);\n }\n\n onEpubEnded(event) {\n this.viewState = this.fromConst.END;\n this.showEpubViewer = false;\n event.data.index = this.currentPageIndex;\n this.viwerService.raiseEndEvent(event);\n }\n\n onEpubLoadFailed(error) {\n this.showContentError = true;\n this.viewState = this.fromConst.LOADING;\n // eslint-disable-next-line max-len\n this.viwerService.raiseExceptionLog(error.errorCode, this.currentPageIndex, error.errorMessage, this.traceId, new Error(error.errorMessage));\n }\n\n replayContent(event) {\n this.currentPageIndex = 1;\n this.viwerService.raiseHeartBeatEvent(event, telemetryType.INTERACT);\n this.viewState = this.fromConst.START;\n this.viwerService.metaData.pagesVisited.push(this.currentPageIndex);\n this.ngOnInit();\n }\n\n exitContent(event) {\n this.viwerService.raiseHeartBeatEvent(event, telemetryType.INTERACT);\n }\n\n sideBarEvents(event) {\n this.viwerService.raiseHeartBeatEvent(event, telemetryType.INTERACT);\n if (event.type === 'DOWNLOAD') {\n this.downloadEpub();\n }\n }\n\n sidebarMenuEvent(event) {\n this.viwerService.raiseHeartBeatEvent(event, telemetryType.INTERACT);\n }\n\n getEpubLoadingProgress() {\n this.intervalRef = setInterval(() => {\n if (this.progress < 95) {\n this.progress = this.progress + 5;\n }\n }, 10);\n }\n\n downloadEpub() {\n const a = document.createElement('a');\n a.href = this.viwerService.artifactUrl;\n a.download = this.viwerService.contentName;\n a.target = '_blank';\n document.body.appendChild(a);\n a.click();\n a.remove();\n this.viwerService.raiseHeartBeatEvent('DOWNLOAD');\n }\n\n @HostListener('window:beforeunload')\n ngOnDestroy() {\n const EndEvent = {\n type: this.fromConst.END,\n data: {\n index: this.currentPageIndex\n }\n };\n this.viwerService.raiseEndEvent(EndEvent);\n this.viwerService.isEndEventRaised = false;\n this.unlistenMouseEnter();\n this.unlistenMouseLeave();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EpubPlayerComponent } from './sunbird-epub-player.component';\nimport { EpubViewerComponent } from './epub-viewer/epub-viewer.component';\nimport { PLAYER_CONFIG, SunbirdPlayerSdkModule } from '@project-sunbird/sunbird-player-sdk-v9';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CommonModule } from '@angular/common';\n\n\n\n\n@NgModule({\n declarations: [EpubPlayerComponent, EpubViewerComponent],\n imports: [\n CommonModule,\n SunbirdPlayerSdkModule,\n HttpClientModule\n ],\n providers:[{ provide: PLAYER_CONFIG, useValue: { contentCompatibilityLevel: 5 } }],\n exports: [EpubPlayerComponent]\n})\nexport class SunbirdEpubPlayerModule { }\n","/*\n * Public API Surface of epub-player\n */\n\nexport * from './lib/sunbird-epub-player.service';\nexport * from './lib/sunbird-epub-player.component';\nexport * from './lib/sunbird-epub-player.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UtilService","i2.EpubPlayerService","fromConst","i1.ViwerService","i2.UtilService","i3","i4.UtilService"],"mappings":"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"}