{"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,@angular-eslint/prefer-standalone\n  selector: 'epub-viewer',\n  templateUrl: './epub-viewer.component.html',\n  styleUrls: ['./epub-viewer.component.css'],\n  standalone: false\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,@angular-eslint/prefer-standalone\n  selector: 'sunbird-epub-player',\n  templateUrl: './sunbird-epub-player.component.html',\n  styleUrls: ['./sunbird-epub-player.component.scss'],\n  standalone: false\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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"}