{"version":3,"file":"project-sunbird-sunbird-pdf-player-v9.mjs","sources":["../../../projects/sunbird-pdf-player/src/lib/services/util.service.ts","../../../projects/sunbird-pdf-player/src/lib/sunbird-pdf-player.service.ts","../../../projects/sunbird-pdf-player/src/lib/services/viewer.service.ts","../../../projects/sunbird-pdf-player/src/lib/pdf-viewer/pdf-viewer.component.ts","../../../projects/sunbird-pdf-player/src/lib/pdf-viewer/pdf-viewer.component.html","../../../projects/sunbird-pdf-player/src/lib/sunbird-pdf-player.component.html","../../../projects/sunbird-pdf-player/src/lib/sunbird-pdf-player.component.ts","../../../projects/sunbird-pdf-player/src/lib/sunbird-pdf-player.module.ts","../../../projects/sunbird-pdf-player/src/public-api.ts","../../../projects/sunbird-pdf-player/src/project-sunbird-sunbird-pdf-player-v9.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UtilService {\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","import { Injectable, EventEmitter } from '@angular/core';\nimport { CsTelemetryModule } from '@project-sunbird/client-services/telemetry';\nimport { PlayerConfig } from './playerInterfaces';\nimport { UtilService } from './services/util.service';\n@Injectable({\n  providedIn: 'root'\n})\nexport class SunbirdPdfPlayerService {\n\n  private contentSessionId: string;\n  private playSessionId: string;\n  private telemetryObject: any;\n  private context;\n  public config;\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\n    if (!context) {\n      return;\n    }\n\n    if (!CsTelemetryModule.instance.isInitialised) {\n      CsTelemetryModule.instance.init({});\n      const telemetryConfig: any =  {\n        config: {\n          pdata: context.pdata || {'id':'in.sunbird', 'ver':'1.0'},\n          env: 'contentplayer',\n          channel: context.channel || \"in.sunbird\",\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\n  public start(duration) {\n    if (CsTelemetryModule.instance.isInitialised) {\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 end(duration, currentPage, totalpages, visitedlength, endpageseen) {\n    const durationSec = Number((duration / 1e3).toFixed(2));\n    if (CsTelemetryModule.instance.isInitialised) {\n      CsTelemetryModule.instance.telemetryService.raiseEndTelemetry({\n        edata: {\n          type: 'content',\n          mode: 'play',\n          pageid: 'sunbird-player-Endpage',\n          summary: [\n            {\n              progress: Number(((currentPage / totalpages) * 100).toFixed(0))\n            },\n            {\n              totallength: totalpages\n            },\n            {\n              visitedlength\n            },\n            {\n              visitedcontentend: (currentPage === totalpages)\n            },\n            {\n              totalseekedlength: totalpages - visitedlength\n            },\n            {\n              endpageseen\n            }\n          ],\n          duration: durationSec\n        },\n        options: this.getEventOptions()\n      });\n    }\n  }\n\n  public interact(id, currentPage) {\n    if (CsTelemetryModule.instance.isInitialised) {\n      CsTelemetryModule.instance.telemetryService.raiseInteractTelemetry({\n        options: this.getEventOptions(),\n        edata: { type: 'TOUCH', subtype: '', id, pageid: currentPage + '' }\n      });\n    }\n  }\n\n  public heartBeat(data) {\n    if (CsTelemetryModule.instance.isInitialised) {\n      CsTelemetryModule.instance.playerTelemetryService.onHeartBeatEvent(data, {});\n    }\n  }\n\n  public impression(currentPage) {\n    if (CsTelemetryModule.instance.isInitialised) {\n      CsTelemetryModule.instance.telemetryService.raiseImpressionTelemetry({\n        options: this.getEventOptions(),\n        edata: { type: 'workflow', subtype: '', pageid: currentPage + '', uri: '' }\n      });\n    }\n  }\n\n  public error(error: any, data: { err: string, errtype: string }) {\n    if (CsTelemetryModule.instance.isInitialised) {\n      CsTelemetryModule.instance.telemetryService.raiseErrorTelemetry({\n        options: this.getEventOptions(),\n        edata: {\n          err: data.err,\n          errtype: data.errtype,\n          stacktrace: error.toString() || ''\n        }\n      });\n    }\n  }\n\n  private getEventOptions() {\n    return ({\n      object: this.telemetryObject,\n      context: {\n        channel: this.context.channel || \"in.sunbird\",\n        pdata: this.context.pdata || {'id':'in.sunbird', 'ver':'1.0'},\n        env: 'contentplayer',\n        sid: this.context.sid,\n        uid: this.context.uid,\n        cdata: [{ id: this.contentSessionId, type: 'ContentSession' },\n        { id: this.playSessionId, type: 'PlaySession' },\n        {id: '2.0' , type: 'PlayerVersion'}],\n        rollup: this.context.contextRollup || {}\n      }\n    });\n  }\n\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { PlayerConfig } from '../playerInterfaces';\nimport { SunbirdPdfPlayerService } from '../sunbird-pdf-player.service';\nimport { UtilService } from './util.service';\nimport * as _ from 'lodash';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ViewerService {\n\n  public zoom: any = 'auto';\n  public rotation = 0;\n  public currentPagePointer = 0;\n  public totalNumberOfPages = 0;\n  public pdfPlayerStartTime: number;\n  public pdfLastPageTime: 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  private metaData: any;\n  public isAvailableLocally = false;\n  public isEndEventRaised = false;\n  public defaultConfig = {};\n\n  constructor(private sunbirdPdfPlayerService: SunbirdPdfPlayerService,\n              private utilService: UtilService) { }\n\n  initialize({ context, config, metadata }: PlayerConfig) {\n    this.zoom = _.last(config?.zoom) || 'auto';\n    this.rotation = _.last(config?.rotation) || 0;\n    this.pdfPlayerStartTime = this.pdfLastPageTime = new Date().getTime();\n    this.totalNumberOfPages = 0;\n    this.currentPagePointer = _.last(config?.pagesVisited) || 1;\n    this.contentName = metadata.name;\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    } else {\n      this.userName = 'Anonymous';\n    }\n    this.metaData = {\n      pagesVisited: [],\n      totalPages: 0,\n      duration: [],\n      zoom: [],\n      rotation: []\n    };\n    this.loadingProgress = 0;\n    this.showDownloadPopup = false;\n    this.endPageSeen = false;\n\n    this.defaultConfig = {\n      startFromPage: _.last(config?.pagesVisited) || 1,\n      zoom: this.zoom,\n      rotation: this.rotation\n    };\n\n  }\n\n  public pageSessionUpdate() {\n    this.metaData.pagesVisited.push(this.currentPagePointer);\n    this.metaData.duration.push(new Date().getTime() - this.pdfLastPageTime);\n    this.metaData.zoom.push(this.zoom);\n    this.metaData.rotation.push(this.rotation);\n    this.pdfLastPageTime = new Date().getTime();\n  }\n\n  raiseStartEvent(event) {\n    this.currentPagePointer = this.currentPagePointer > event.pagesCount ? 1 : this.currentPagePointer,\n      this.metaData.totalPages = event.pagesCount;\n    this.totalNumberOfPages = event.pagesCount;\n    const duration = new Date().getTime() - this.pdfPlayerStartTime;\n    const startEvent = {\n      eid: 'START',\n      ver: this.version,\n      edata: {\n        type: 'START',\n        currentPage: this.currentPagePointer,\n        duration\n      },\n      metaData: this.metaData\n    };\n    this.playerEvent.emit(startEvent);\n    this.pdfLastPageTime = this.pdfPlayerStartTime = new Date().getTime();\n    this.sunbirdPdfPlayerService.start(duration);\n  }\n\n  raiseEndEvent() {\n    if  (!this.isEndEventRaised) {\n      this.pageSessionUpdate();\n      const duration = new Date().getTime() - this.pdfPlayerStartTime;\n      const endEvent = {\n        eid: 'END',\n        ver: this.version,\n        edata: {\n          type: 'END',\n          currentPage: this.currentPagePointer,\n          totalPages: this.totalNumberOfPages,\n          duration\n        },\n        metaData: this.getMetadata()\n      };\n      this.playerEvent.emit(endEvent);\n      const visitedlength = (this.metaData.pagesVisited.filter((v, i, a) => a.indexOf(v) === i)).length;\n      this.timeSpent = this.utilService.getTimeSpentText(this.pdfPlayerStartTime);\n      this.sunbirdPdfPlayerService.end(duration,\n        this.currentPagePointer, this.totalNumberOfPages, visitedlength, this.endPageSeen);\n      this.isEndEventRaised = true;\n    }\n  }\n\n  getMetadata() {\n    return {\n      pagesVisited: this.metaData.pagesVisited.length ? (this.endPageSeen ? [0] : [_.last(this.metaData.pagesVisited)]) : [],\n      duration: this.metaData.duration.length ? [_.last(this.metaData.duration)] : [],\n      zoom: this.metaData.zoom.length ? [_.last(this.metaData.zoom)] : [],\n      rotation: this.metaData.rotation.length ? [_.last(this.metaData.rotation)] : []\n    };\n  }\n\n  raiseHeartBeatEvent(type: string) {\n    const hearBeatEvent = {\n      eid: 'HEARTBEAT',\n      ver: this.version,\n      edata: {\n        type,\n        currentPage: this.currentPagePointer\n      },\n      metaData: this.metaData\n    };\n    this.playerEvent.emit(hearBeatEvent);\n    this.sunbirdPdfPlayerService.heartBeat(hearBeatEvent);\n    if (type === 'PAGE_CHANGE') {\n      this.sunbirdPdfPlayerService.impression(this.currentPagePointer);\n    }\n    const interactItems = ['CLOSE_DOWNLOAD', 'DOWNLOAD', 'ZOOM_IN',\n      'ZOOM_OUT', 'NAVIGATE_TO_PAGE',\n      'NEXT', 'OPEN_MENU', 'PREVIOUS', 'CLOSE_MENU', 'DOWNLOAD_MENU',\n      'SHARE', 'ROTATION_CHANGE', 'REPLAY' , 'PRINT', 'NEXT_CONTENT_PLAY'\n    ];\n    if (interactItems.includes(type)) {\n      this.sunbirdPdfPlayerService.interact(type.toLowerCase(), this.currentPagePointer);\n    }\n\n  }\n\n  raiseExceptionLog(errorCode: string , errorType: string , stacktrace , traceId ) {\n    const exceptionLogEvent = {\n      eid: 'ERROR',\n      edata: {\n          err: errorCode,\n          errtype: errorType,\n          requestid: traceId || '',\n          stacktrace: (stacktrace && stacktrace.toString()) || '',\n      }\n    };\n    this.playerEvent.emit(exceptionLogEvent);\n    this.sunbirdPdfPlayerService.error(stacktrace, { err: errorCode, errtype: errorType });\n  }\n}\n","import {\n  AfterViewInit, Component, ElementRef,\n  Renderer2, ViewChild, EventEmitter,\n  Output, Input, HostListener\n} from '@angular/core';\nimport { ViewerService } from '../services/viewer.service';\n// eslint-disable-next-line @angular-eslint/prefer-standalone\n@Component({\n  standalone: false,\n  selector: 'pdf-viewer',\n  templateUrl: './pdf-viewer.component.html',\n  styleUrls: ['./pdf-viewer.component.scss']\n})\nexport class PdfViewerComponent implements AfterViewInit {\n\n  public src = 'assets/pdfjs/web/viewer.html?file=';\n  @ViewChild('iframe', { static: true }) iframeRef: ElementRef;\n  @Input() pdfURL: string;\n  @Input() actions = new EventEmitter<any>();\n  private progressInterval;\n  private viewerApp;\n  private iframeWindow;\n  @Output() viewerEvent = new EventEmitter<any>();\n  private actionsMap = new Map([\n    ['ZOOM_OUT', 'zoomout'],\n    ['NEXT', 'nextpage'],\n    ['PREVIOUS', 'previouspage'],\n    ['ROTATE_CW', 'rotatecw'],\n    ['DOWNLOAD', 'download']\n  ]);\n\n  constructor(private renderer: Renderer2, private viewerService: ViewerService) { }\n\n  @HostListener('document:webviewerloaded')\n  onWebViewerLoaded(): void {\n    this.viewerApp = this.iframeRef.nativeElement.contentWindow.PDFViewerApplication;\n    this.viewerApp.initializedPromise.then(() => {\n\n      let progress;\n      let isRegistredWithLoadingTask = false;\n      this.progressInterval = setInterval(() => {\n        if (this.viewerApp && (progress !== this.viewerApp.loadingBar.percent || this.viewerApp.loadingBar.percent === 100)) {\n          progress = this.viewerApp.loadingBar.percent;\n          this.viewerEvent.emit({ type: 'progress', data: this.viewerApp.loadingBar.percent });\n        }\n        if (this.viewerApp.pdfLoadingTask && !isRegistredWithLoadingTask) {\n          this.viewerApp.pdfLoadingTask.promise.catch((error) => {\n            clearInterval(this.progressInterval);\n            this.viewerEvent.emit({\n              type: 'error', data:\n                // eslint-disable-next-line max-len\n                (navigator.onLine ? `Internet available but unable to fetch the url ${this.pdfURL} ` : `No internet to load pdf with url ${this.pdfURL} `) + (error ? error.toString() : '')\n            });\n          });\n          isRegistredWithLoadingTask = true;\n        }\n      }, 50);\n\n      // this.viewerApp.eventBus.on(\"documentloaded\", () => {\n      this.registerForEvents();\n      // });\n    }).catch(error => {\n      this.viewerEvent.emit({\n        type: 'error', data:\n          // eslint-disable-next-line max-len\n          (navigator.onLine ? `Internet available but unable to fetch the url ${this.pdfURL} ` : `No internet to load pdf with url ${this.pdfURL} `) + (error ? error.toString() : '')\n      });\n    });\n  }\n\n  ngAfterViewInit() {\n    this.iframeRef.nativeElement.src =\n      `${this.src}${this.pdfURL}#pagemode=none&page=${this.viewerService.currentPagePointer}&zoom=${this.viewerService.zoom}`;\n    this.iframeWindow = this.iframeRef.nativeElement.contentWindow;\n\n    this.actions.subscribe(({ type, data }) => {\n      if (type === 'REPLAY') {\n        this.iframeRef.nativeElement.contentDocument.location.reload(true);\n      } else if (type === 'ZOOM_IN' && this.viewerApp.pdfViewer.currentScale < 3) {\n        this.viewerService.pageSessionUpdate();\n        this.viewerApp.zoomIn();\n        this.viewerService.zoom = (this.viewerApp.pdfViewer.currentScale * 100);\n      } else if (type === 'ZOOM_OUT') {\n        this.viewerService.pageSessionUpdate();\n        this.viewerApp.zoomOut();\n        this.viewerService.zoom = (this.viewerApp.pdfViewer.currentScale * 100);\n      } else if (type === 'NAVIGATE_TO_PAGE') {\n        this.viewerEvent.emit({ type: 'INVALID_PAGE_ERROR', data: true });\n        this.viewerApp.page = data;\n      } else if (this.actionsMap.has(type)) {\n        this.viewerApp.eventBus.dispatch(this.actionsMap.get(type));\n      } else if (type === 'INVALID_PAGE_ERROR') {\n        this.viewerEvent.emit({ type: 'INVALID_PAGE_ERROR', data: false });\n      }\n    });\n  }\n\n\n  registerForEvents() {\n      this.viewerApp.eventBus.on('pagesloaded', (data) => {\n        setTimeout(() => {\n          this.viewerApp.rotatePages(this.viewerService.rotation);\n          this.ListenToPageScroll();\n        }, 500);\n        this.pagesLoadedCallback(data);\n        if (this.viewerApp?.page && this.viewerService.currentPagePointer) {\n          this.viewerApp.page = this.viewerService.currentPagePointer;\n        }\n      });\n      this.viewerApp.eventBus.on('pagechanging', (data) => {\n        this.viewerEvent.emit({ type: 'pagechanging', data });\n      });\n\n      this.viewerApp.eventBus.on('rotatecw', () => {\n        this.viewerEvent.emit({ type: 'rotatecw', data: this.viewerApp.pdfViewer.pagesRotation });\n      });\n\n  }\n\n  private pagesLoadedCallback(data: any) {\n    this.viewerEvent.emit({ type: 'progress', data: 100 });\n    clearInterval(this.progressInterval);\n    this.viewerEvent.emit({ type: 'pagesloaded', data });\n  }\n\n  private ListenToPageScroll() {\n    const viewerContainer =  this.iframeRef.nativeElement.contentDocument.getElementById('viewerContainer');\n    if (viewerContainer) {\n      viewerContainer.onscroll = (e: any) => {\n        if (Math.ceil(e.target.offsetHeight + e.target.scrollTop) >= e.target.scrollHeight && this.viewerService.totalNumberOfPages > 1) {\n          this.viewerEvent.emit({ type: 'pageend' });\n        }\n      };\n    }\n  }\n}\n","<iframe frameborder=\"0\" #iframe></iframe>","<div class=\"sunbird-pdf-palyer-container\" #pdfPlayer>\n  <sb-player-start-page *ngIf=\"viewState === 'start'\" [title]=\"viewerService.contentName\"\n    [progress]=\"viewerService.loadingProgress\" [playerConfig]=\"playerConfig\"></sb-player-start-page>\n\n  <sb-player-header class=\"sb-pdf-main-header notVisible\" [ngClass]=\"{'isVisible': showControls}\"\n    *ngIf=\"viewState ==='player'\" [pageNumber]=\"viewerService.currentPagePointer\" [config]=\"headerConfig\"\n    [totalPages]=\"viewerService.totalNumberOfPages\" (actions)=\"headerActions($event)\"></sb-player-header>\n  <sb-player-side-menu-icon class=\"notVisible\" (sidebarMenuEvent)=\"sideBarEvents($event)\"\n    *ngIf=\"viewState ==='player'\" [ngClass]=\"{'isVisible': showControls}\">\n    </sb-player-side-menu-icon>\n    <span [style.display]=\"viewState ==='player' ? 'inline': 'none'\">\n      <pdf-viewer (viewerEvent)=\"viewerEvent($event)\" [pdfURL]=\"viewerService.src\"\n        [actions]=\"viewerActions\"></pdf-viewer>\n    </span>\n    <sb-player-sidebar *ngIf=\"viewState ==='player'\" [title]=\"viewerService.contentName\"\n      (sidebarEvent)=\"sideBarEvents($event)\" [config]=\"sideMenuConfig\"       \n      [playerConfig]=\"playerConfig\"></sb-player-sidebar>\n\n    <div class=\"sb-pdf-reading-status\" *ngIf=\"viewState ==='player'\">{{playerConfig?.context?.resourceBundles?.page || \"Page\"}} {{viewerService.currentPagePointer}} {{playerConfig?.context?.resourceBundles?.of || \"of\"}}\n      {{viewerService.totalNumberOfPages}} <span></span>\n      {{((viewerService.currentPagePointer/viewerService.totalNumberOfPages) * 100).toFixed(0)}}%</div>\n    <div class=\"visible-only-potrait BtmNotVisible\" [ngClass]=\"{'isVisible': showControls}\"\n      *ngIf=\"viewState ==='player'\">\n      <div class=\"sbt-pdf-footer\">\n        <div class=\"d-flex pdf-slides\" style=\"float: right;\">\n          <sb-player-previous-navigation class=\"d-flex flex-ai-center flex-jc-center\" (previousAction)=\"headerActions($event)\"></sb-player-previous-navigation>\n          <sb-player-next-navigation  class=\"d-flex flex-ai-center flex-jc-center\" (nextAction)=\"headerActions($event)\"></sb-player-next-navigation>\n        </div>\n      </div>\n    </div>\n    <sb-player-end-page [contentName]=\"viewerService.contentName\"  [outcomeLabel]=\"playerConfig?.context?.resourceBundles?.pagesRead || 'Pages read:'\" [outcome]=\"viewerService.currentPagePointer\"\n      [userName]=\"viewerService.userName\" [nextContent]=\"nextContent\" [timeSpentLabel]=\"viewerService.timeSpent\"\n      (replayContent)=\"replayContent($event)\" (exitContent)=\"exitContent($event)\" (playNextContent)=\"playContent($event)\" [showExit]=\"sideMenuConfig.showExit\" *ngIf=\"viewState === 'end'\"\n      [playerConfig]=\"playerConfig\"></sb-player-end-page>\n     <sb-player-contenterror *ngIf=\"showContentError\"></sb-player-contenterror>\n</div>\n\n<div class=\"pagenotfound__tooltip\" *ngIf=\"!validPage\">\n  <div class=\"pagenotfound__icon\"></div>\n  <div class=\"pagenotfound__text\">Page Not Found</div>\n</div>","import {\n  AfterViewInit, ChangeDetectorRef, Component,\n\n  ElementRef, EventEmitter,\n  HostListener, Input,\n  OnChanges, OnDestroy, OnInit, Output,\n\n  Renderer2, SimpleChanges,\n  ViewChild\n} from '@angular/core';\nimport { Config, PlayerConfig } from './playerInterfaces';\nimport { ViewerService } from './services/viewer.service';\nimport { SunbirdPdfPlayerService } from './sunbird-pdf-player.service';\nimport * as _ from 'lodash';\nimport { ErrorService, errorCode, errorMessage } from '@project-sunbird/sunbird-player-sdk-v9';\n\n// eslint-disable-next-line @angular-eslint/prefer-standalone\n@Component({\n  standalone: false,\n  selector: 'sunbird-pdf-player',\n  templateUrl: './sunbird-pdf-player.component.html',\n  styleUrls: ['./sunbird-pdf-player.component.scss']\n})\nexport class SunbirdPdfPlayerComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n  public pdfConfig: Config;\n  private subscription;\n  public viewState = 'start';\n  public showControls = true;\n  public traceId: string;\n  public nextContent: any;\n  public validPage = true;\n  public isInitialized = false;\n  @ViewChild('pdfPlayer', { static: true }) pdfPlayerRef: ElementRef;\n  sideMenuConfig = {\n    showShare: true,\n    showDownload: true,\n    showReplay: true,\n    showExit: false,\n    showPrint: true\n  };\n  @Input() playerConfig: PlayerConfig;\n  @Input() action: string;\n  @Output() playerEvent: EventEmitter<object>;\n  @Output() telemetryEvent: EventEmitter<any> = new EventEmitter<any>();\n\n  headerConfig = {\n    rotation: true,\n    goto: true,\n    navigation: true,\n    zoom: true\n  };\n\n  viewerActions: EventEmitter<any> = new EventEmitter<any>();\n  private unlistenMouseEnter: () => void;\n  private unlistenMouseLeave: () => void;\n  showContentError: boolean;\n  defaultCompatibilityLevel = 4;\n\n  constructor(\n    public pdfPlayerService: SunbirdPdfPlayerService,\n    public viewerService: ViewerService,\n    private cdRef: ChangeDetectorRef,\n    private renderer2: Renderer2,\n    public errorService: ErrorService\n  ) {\n\n    this.playerEvent = this.viewerService.playerEvent;\n  }\n\n  @HostListener('document:TelemetryEvent', ['$event'])\n  onTelemetryEvent(event) {\n    this.telemetryEvent.emit(event.detail);\n  }\n\n  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    }\n    this.nextContent = this.playerConfig?.config?.nextContent;\n    this.viewState = 'start';\n    this.pdfConfig = { ...this.viewerService.defaultConfig, ...this.playerConfig?.config };\n    this.sideMenuConfig = { ...this.sideMenuConfig, ...this.playerConfig?.config?.sideMenu };\n    this.pdfPlayerService.initialize(this.playerConfig);\n    this.viewerService.initialize(this.playerConfig);\n\n  }\n\n  ngAfterViewInit() {\n    const pdfPlayerElement = this.pdfPlayerRef.nativeElement;\n    this.unlistenMouseEnter = this.renderer2.listen(pdfPlayerElement, 'mouseenter', () => {\n      this.showControls = true;\n    });\n\n    this.unlistenMouseLeave = this.renderer2.listen(pdfPlayerElement, 'mouseleave', () => {\n      this.showControls = false;\n    });\n\n    this.traceId = this.playerConfig?.config?.traceId;\n\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.viewerService.raiseExceptionLog(errorCode.contentCompatibility, errorMessage.contentCompatibility, checkContentCompatible.error, this.traceId);\n      }\n    }\n  }\n\n  headerActions({ type, data }) {\n    if (type === 'NEXT' && this.viewerService.currentPagePointer === this.viewerService.totalNumberOfPages) {\n      this.viewerService.raiseEndEvent();\n      this.viewState = 'end';\n      this.viewerService.endPageSeen = true;\n      this.cdRef.detectChanges();\n      return;\n    }\n    this.viewerActions.emit({ type, data });\n    this.viewerService.raiseHeartBeatEvent(type);\n\n  }\n\n  playContent(event) {\n    this.viewerService.raiseHeartBeatEvent(event.type);\n  }\n\n  sideBarEvents(event) {\n    this.viewerService.raiseHeartBeatEvent(event.type);\n    this.viewerActions.emit({ type: event.type });\n  }\n\n  replayContent(event) {\n    this.viewerService.raiseHeartBeatEvent(event.type);\n    this.ngOnInit();\n    this.viewerActions.emit({ type: 'REPLAY' });\n    this.viewerService.isEndEventRaised = false;\n    this.cdRef.detectChanges();\n  }\n\n  exitContent(event) {\n    this.viewerService.raiseHeartBeatEvent(event.type);\n  }\n\n  public onPdfLoaded(event): void {\n    const startEvent = this.viewerService.raiseStartEvent(event);\n    this.telemetryEvent.emit(startEvent);\n    this.viewState = 'player';\n    this.cdRef.detectChanges();\n  }\n\n  public onPdfLoadFailed(error: Error): void {\n    let code = errorCode.contentLoadFails;\n    let message = errorMessage.contentLoadFails;\n    if (!navigator.onLine) {\n      code = errorCode.internetConnectivity;\n      message = errorMessage.internetConnectivity;\n    }\n    if (this.viewerService.isAvailableLocally) {\n      code = errorCode.contentLoadFails;\n      message = errorMessage.contentLoadFails;\n    }\n\n    if (code === errorCode.contentLoadFails) {\n      this.showContentError = true;\n    }\n    this.viewerService.raiseExceptionLog(code, message, error, this.traceId);\n  }\n\n  public onZoomChange(event: any): void {\n    this.viewerService.pageSessionUpdate();\n    this.viewerService.raiseHeartBeatEvent('ZOOM_CHANGE');\n    this.viewerService.zoom = event;\n  }\n\n  public onPdfDownloaded(): void {\n    this.viewerService.raiseHeartBeatEvent('PDF_DOWNLOAD');\n  }\n\n  public onAfterPrint() {\n    this.viewerService.raiseHeartBeatEvent('PDF_PRINT');\n  }\n\n  public onRotationChange(event: any): void {\n    this.viewerService.pageSessionUpdate();\n    this.viewerService.raiseHeartBeatEvent('ROTATION_CHANGE');\n    this.viewerService.rotation = event;\n  }\n\n  // On Page next and previous or scroll\n  public onPageChange(event: any): void {\n    this.viewerService.pageSessionUpdate();\n    this.viewerService.currentPagePointer = event.pageNumber;\n    this.viewerService.raiseHeartBeatEvent('PAGE_CHANGE');\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.action) {\n      this.viewerActions.emit({ type: changes.action });\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\n  public viewerEvent({ type, data }) {\n    if (type === 'progress') {\n      this.viewerService.loadingProgress = data;\n    } else if (type === 'pagesloaded') {\n      this.onPdfLoaded(data);\n    } else if (type === 'pagechanging') {\n      this.onPageChange(data);\n    } else if (type === 'rotatecw') {\n      this.onRotationChange(data);\n    } else if (type === 'pageend') {\n      this.viewerService.raiseEndEvent();\n      this.viewerService.endPageSeen = true;\n      this.viewState = 'end';\n    } else if (type === 'error') {\n      this.onPdfLoadFailed(data);\n    } else if (type === 'INVALID_PAGE_ERROR') {\n      this.validPage = data;\n      this.resetValidPage();\n    }\n    this.cdRef.detectChanges();\n  }\n\n  resetValidPage() {\n    setTimeout(() => {\n      this.validPage = true;\n      this.cdRef.detectChanges();\n    }, 5000);\n  }\n\n  @HostListener('window:beforeunload')\n  ngOnDestroy() {\n    this.viewerService.raiseEndEvent();\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n    this.viewerService.isEndEventRaised = false;\n    this.unlistenMouseEnter();\n    this.unlistenMouseLeave();\n    // this.unlistenTouch();\n  }\n}\n","import { FormsModule } from '@angular/forms';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SunbirdPdfPlayerComponent } from './sunbird-pdf-player.component';\nimport { PdfViewerComponent } from './pdf-viewer/pdf-viewer.component';\nimport { PLAYER_CONFIG, SunbirdPlayerSdkModule } from '@project-sunbird/sunbird-player-sdk-v9';\n\n@NgModule({\n  declarations: [\n    SunbirdPdfPlayerComponent, PdfViewerComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    SunbirdPlayerSdkModule\n  ],\n  providers: [{ provide: PLAYER_CONFIG, useValue: { contentCompatibilityLevel: 5 } }],\n  exports: [SunbirdPdfPlayerComponent],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class SunbirdPdfPlayerModule { }\n","/*\n * Public API Surface of sunbird-pdf-player\n */\n\nexport * from './lib/sunbird-pdf-player.component';\nexport * from './lib/sunbird-pdf-player.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UtilService","i1.SunbirdPdfPlayerService","i2.UtilService","i1.ViewerService","i2.ViewerService"],"mappings":"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"}