{"version":3,"file":"ng2-pdf-viewer.mjs","sources":["../../src/app/utils/event-bus-utils.ts","../../src/app/utils/helpers.ts","../../src/app/pdf-viewer/pdf-viewer.component.ts","../../src/app/pdf-viewer/pdf-viewer.module.ts","../../ng2-pdf-viewer.ts"],"sourcesContent":["import { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport type { EventBus } from 'pdfjs-dist/web/pdf_viewer.mjs';\n\n// interface EventBus {\n//   on(eventName: string, listener: Function): void;\n//   off(eventName: string, listener: Function): void;\n//   _listeners: any;\n//   dispatch(eventName: string, data: Object): void;\n//   _on(eventName: any, listener: any, options?: null): void;\n//   _off(eventName: any, listener: any, options?: null): void;\n// }\n\nexport function createEventBus(pdfJsViewer: any, destroy$: Subject<void>) {\n  const globalEventBus: EventBus = new pdfJsViewer.EventBus();\n  attachDOMEventsToEventBus(globalEventBus, destroy$);\n  return globalEventBus;\n}\n\nfunction attachDOMEventsToEventBus(\n  eventBus: EventBus,\n  destroy$: Subject<void>\n): void {\n  fromEvent(eventBus, 'documentload')\n    .pipe(takeUntil(destroy$))\n    .subscribe(() => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('documentload', true, true, {});\n      window.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'pagerendered')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ pageNumber, cssTransform, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('pagerendered', true, true, {\n        pageNumber,\n        cssTransform,\n      });\n      source.div.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'textlayerrendered')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ pageNumber, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('textlayerrendered', true, true, { pageNumber });\n      source.textLayerDiv?.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'pagechanging')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ pageNumber, source }: any) => {\n      const event = document.createEvent('UIEvents') as any;\n      event.initEvent('pagechanging', true, true);\n      /* tslint:disable:no-string-literal */\n      event['pageNumber'] = pageNumber;\n      source.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'pagesinit')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('pagesinit', true, true, null);\n      source.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'pagesloaded')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ pagesCount, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('pagesloaded', true, true, { pagesCount });\n      source.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'scalechange')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ scale, presetValue, source }: any) => {\n      const event = document.createEvent('UIEvents') as any;\n      event.initEvent('scalechange', true, true);\n      /* tslint:disable:no-string-literal */\n      event['scale'] = scale;\n      /* tslint:disable:no-string-literal */\n      event['presetValue'] = presetValue;\n      source.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'updateviewarea')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ location, source }: any) => {\n      const event = document.createEvent('UIEvents') as any;\n      event.initEvent('updateviewarea', true, true);\n      event['location'] = location;\n      source.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'find')\n    .pipe(takeUntil(destroy$))\n    .subscribe(\n      ({\n        source,\n        type,\n        query,\n        phraseSearch,\n        caseSensitive,\n        highlightAll,\n        findPrevious,\n      }: any) => {\n        if (source === window) {\n          return; // event comes from FirefoxCom, no need to replicate\n        }\n        const event = document.createEvent('CustomEvent');\n        event.initCustomEvent('find' + type, true, true, {\n          query,\n          phraseSearch,\n          caseSensitive,\n          highlightAll,\n          findPrevious,\n        });\n        window.dispatchEvent(event);\n      }\n    );\n\n  fromEvent(eventBus, 'attachmentsloaded')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ attachmentsCount, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('attachmentsloaded', true, true, {\n        attachmentsCount,\n      });\n      source.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'sidebarviewchanged')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ view, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('sidebarviewchanged', true, true, { view });\n      source.outerContainer.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'pagemode')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ mode, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('pagemode', true, true, { mode });\n      source.pdfViewer.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'namedaction')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ action, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('namedaction', true, true, { action });\n      source.pdfViewer.container.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'presentationmodechanged')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ active, switchInProgress }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('presentationmodechanged', true, true, {\n        active,\n        switchInProgress,\n      });\n      window.dispatchEvent(event);\n    });\n\n  fromEvent(eventBus, 'outlineloaded')\n    .pipe(takeUntil(destroy$))\n    .subscribe(({ outlineCount, source }: any) => {\n      const event = document.createEvent('CustomEvent');\n      event.initCustomEvent('outlineloaded', true, true, { outlineCount });\n      source.container.dispatchEvent(event);\n    });\n}\n","export function assign(obj: any, prop: string, value: any) {\n  obj[prop] = value;\n}\n\nexport function isSSR() {\n  return typeof window === 'undefined';\n}","/**\n * Created by vadimdez on 21/06/16.\n */\nimport {\n  Component,\n  Input,\n  Output,\n  ElementRef,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n  OnInit,\n  OnDestroy,\n  ViewChild,\n  AfterViewChecked,\n  NgZone\n} from '@angular/core';\nimport { from, fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\nimport * as PDFJS from 'pdfjs-dist';\nimport * as PDFJSViewer from 'pdfjs-dist/web/pdf_viewer.mjs';\n\nimport { createEventBus } from '../utils/event-bus-utils';\nimport { assign, isSSR } from '../utils/helpers';\n\nimport type {\n  PDFSource,\n  PDFPageProxy,\n  PDFProgressData,\n  PDFDocumentProxy,\n  PDFDocumentLoadingTask,\n  PDFViewerOptions,\n  ZoomScale\n} from './typings';\nimport { GlobalWorkerOptions, VerbosityLevel, getDocument } from 'pdfjs-dist';\n\n\nif (!isSSR()) {\n  assign(PDFJS, 'verbosity', VerbosityLevel.INFOS);\n}\n\n// @ts-expect-error This does not exist outside of polyfill which this is doing\nif (typeof Promise.withResolvers === 'undefined' && window) {\n  // @ts-expect-error This does not exist outside of polyfill which this is doing\n  window.Promise.withResolvers = () => {\n    let resolve;\n    let reject;\n    const promise = new Promise((res, rej) => {\n      resolve = res;\n      reject = rej;\n    });\n    return { promise, resolve, reject };\n  };\n}\n\n\nexport enum RenderTextMode {\n  DISABLED,\n  ENABLED,\n  ENHANCED\n}\n\n@Component({\n  selector: 'pdf-viewer',\n  template: `\n    <div #pdfViewerContainer class=\"ng2-pdf-viewer-container\">\n      <div class=\"pdfViewer\"></div>\n    </div>\n  `,\n  styleUrls: ['./pdf-viewer.component.scss']\n})\nexport class PdfViewerComponent\n  implements OnChanges, OnInit, OnDestroy, AfterViewChecked {\n  static CSS_UNITS = 96.0 / 72.0;\n  static BORDER_WIDTH = 9;\n\n  @ViewChild('pdfViewerContainer') pdfViewerContainer!: ElementRef<HTMLDivElement>;\n\n  public eventBus!: PDFJSViewer.EventBus;\n  public pdfLinkService!: PDFJSViewer.PDFLinkService;\n  public pdfFindController!: PDFJSViewer.PDFFindController;\n  public pdfViewer!: PDFJSViewer.PDFViewer | PDFJSViewer.PDFSinglePageViewer;\n\n  private isVisible = false;\n\n  private _cMapsUrl =\n    typeof PDFJS !== 'undefined'\n      ? `https://unpkg.com/pdfjs-dist@${(PDFJS as any).version}/cmaps/`\n      : null;\n  private _imageResourcesPath =\n    typeof PDFJS !== 'undefined'\n      ? `https://unpkg.com/pdfjs-dist@${(PDFJS as any).version}/web/images/`\n      : undefined;\n  private _renderText = true;\n  private _renderTextMode: RenderTextMode = RenderTextMode.ENABLED;\n  private _stickToPage = false;\n  private _originalSize = true;\n  private _pdf: PDFDocumentProxy | undefined;\n  private _page = 1;\n  private _zoom = 1;\n  private _zoomScale: ZoomScale = 'page-width';\n  private _rotation = 0;\n  private _showAll = true;\n  private _canAutoResize = true;\n  private _fitToPage = false;\n  private _externalLinkTarget = 'blank';\n  private _showBorders = false;\n  private lastLoaded!: string | Uint8Array | PDFSource | null;\n  private _latestScrolledPage!: number;\n\n  private pageScrollTimeout: number | null = null;\n  private isInitialized = false;\n  private loadingTask?: PDFDocumentLoadingTask | null;\n  private destroy$ = new Subject<void>();\n\n  @Output('after-load-complete') afterLoadComplete = new EventEmitter<PDFDocumentProxy>();\n  @Output('page-rendered') pageRendered = new EventEmitter<CustomEvent>();\n  @Output('pages-initialized') pageInitialized = new EventEmitter<CustomEvent>();\n  @Output('text-layer-rendered') textLayerRendered = new EventEmitter<CustomEvent>();\n  @Output('error') onError = new EventEmitter<any>();\n  @Output('on-progress') onProgress = new EventEmitter<PDFProgressData>();\n  @Output() pageChange: EventEmitter<number> = new EventEmitter<number>(true);\n  @Input() src?: string | Uint8Array | PDFSource;\n\n  @Input('c-maps-url')\n  set cMapsUrl(cMapsUrl: string) {\n    this._cMapsUrl = cMapsUrl;\n  }\n\n  @Input('page')\n  set page(_page: number | string | any) {\n    _page = parseInt(_page, 10) || 1;\n    const originalPage = _page;\n\n    if (this._pdf) {\n      _page = this.getValidPageNumber(_page);\n    }\n\n    this._page = _page;\n    if (originalPage !== _page) {\n      this.pageChange.emit(_page);\n    }\n  }\n\n  @Input('render-text')\n  set renderText(renderText: boolean) {\n    this._renderText = renderText;\n  }\n\n  @Input('render-text-mode')\n  set renderTextMode(renderTextMode: RenderTextMode) {\n    this._renderTextMode = renderTextMode;\n  }\n\n  @Input('original-size')\n  set originalSize(originalSize: boolean) {\n    this._originalSize = originalSize;\n  }\n\n  @Input('show-all')\n  set showAll(value: boolean) {\n    this._showAll = value;\n  }\n\n  @Input('stick-to-page')\n  set stickToPage(value: boolean) {\n    this._stickToPage = value;\n  }\n\n  @Input('zoom')\n  set zoom(value: number) {\n    if (value <= 0) {\n      return;\n    }\n\n    this._zoom = value;\n  }\n\n  get zoom() {\n    return this._zoom;\n  }\n\n  @Input('zoom-scale')\n  set zoomScale(value: ZoomScale) {\n    this._zoomScale = value;\n  }\n\n  get zoomScale() {\n    return this._zoomScale;\n  }\n\n  @Input('rotation')\n  set rotation(value: number) {\n    if (!(typeof value === 'number' && value % 90 === 0)) {\n      console.warn('Invalid pages rotation angle.');\n      return;\n    }\n\n    this._rotation = value;\n  }\n\n  @Input('external-link-target')\n  set externalLinkTarget(value: string) {\n    this._externalLinkTarget = value;\n  }\n\n  @Input('autoresize')\n  set autoresize(value: boolean) {\n    this._canAutoResize = Boolean(value);\n  }\n\n  @Input('fit-to-page')\n  set fitToPage(value: boolean) {\n    this._fitToPage = Boolean(value);\n  }\n\n  @Input('show-borders')\n  set showBorders(value: boolean) {\n    this._showBorders = Boolean(value);\n  }\n\n  static getLinkTarget(type: string) {\n    switch (type) {\n      case 'blank':\n        return (PDFJSViewer as any).LinkTarget.BLANK;\n      case 'none':\n        return (PDFJSViewer as any).LinkTarget.NONE;\n      case 'self':\n        return (PDFJSViewer as any).LinkTarget.SELF;\n      case 'parent':\n        return (PDFJSViewer as any).LinkTarget.PARENT;\n      case 'top':\n        return (PDFJSViewer as any).LinkTarget.TOP;\n    }\n\n    return null;\n  }\n\n  constructor(private element: ElementRef<HTMLElement>, private ngZone: NgZone) {\n    if (isSSR()) {\n      return;\n    }\n\n    let pdfWorkerSrc: string;\n\n    const pdfJsVersion: string = (PDFJS as any).version;\n    const versionSpecificPdfWorkerUrl: string = (window as any)[`pdfWorkerSrc${pdfJsVersion}`];\n\n    if (versionSpecificPdfWorkerUrl) {\n      pdfWorkerSrc = versionSpecificPdfWorkerUrl;\n    } else if (\n      window.hasOwnProperty('pdfWorkerSrc') &&\n      typeof (window as any).pdfWorkerSrc === 'string' &&\n      (window as any).pdfWorkerSrc\n    ) {\n      pdfWorkerSrc = (window as any).pdfWorkerSrc;\n    } else {\n      pdfWorkerSrc = `https://cdn.jsdelivr.net/npm/pdfjs-dist@${pdfJsVersion\n        }/legacy/build/pdf.worker.min.mjs`;\n    }\n\n    assign(GlobalWorkerOptions, 'workerSrc', pdfWorkerSrc);\n  }\n\n  ngAfterViewChecked(): void {\n    if (this.isInitialized) {\n      return;\n    }\n\n    const offset = this.pdfViewerContainer.nativeElement.offsetParent;\n\n    if (this.isVisible === true && offset == null) {\n      this.isVisible = false;\n      return;\n    }\n\n    if (this.isVisible === false && offset != null) {\n      this.isVisible = true;\n\n      setTimeout(() => {\n        this.initialize();\n        this.ngOnChanges({ src: this.src } as any);\n      });\n    }\n  }\n\n  ngOnInit() {\n    this.initialize();\n    this.setupResizeListener();\n  }\n\n  ngOnDestroy() {\n    this.clear();\n    this.destroy$.next();\n    this.loadingTask = null;\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (isSSR() || !this.isVisible) {\n      return;\n    }\n\n    if ('src' in changes) {\n      this.loadPDF();\n    } else if (this._pdf) {\n      if ('renderText' in changes || 'showAll' in changes) {\n        this.setupViewer();\n        this.resetPdfDocument();\n      }\n      if ('page' in changes) {\n        const { page } = changes;\n        if (page.currentValue === this._latestScrolledPage) {\n          return;\n        }\n\n        // New form of page changing: The viewer will now jump to the specified page when it is changed.\n        // This behavior is introduced by using the PDFSinglePageViewer\n        this.pdfViewer.scrollPageIntoView({ pageNumber: this._page });\n      }\n\n      this.update();\n    }\n  }\n\n  public updateSize() {\n    from(\n      this._pdf!.getPage(\n        this.pdfViewer.currentPageNumber\n      )\n    )\n      .pipe(takeUntil(this.destroy$))\n      .subscribe({\n        next: (page: PDFPageProxy) => {\n          const rotation = this._rotation + page.rotate;\n          const viewportWidth =\n            page.getViewport({\n              scale: this._zoom,\n              rotation\n            }).width * PdfViewerComponent.CSS_UNITS;\n          let scale = this._zoom;\n          let stickToPage = true;\n\n          // Scale the document when it shouldn't be in original size or doesn't fit into the viewport\n          if (\n            !this._originalSize ||\n            (this._fitToPage &&\n              viewportWidth > this.pdfViewerContainer.nativeElement.clientWidth)\n          ) {\n            const viewPort = page.getViewport({ scale: 1, rotation });\n            scale = this.getScale(viewPort.width, viewPort.height);\n            stickToPage = !this._stickToPage;\n          }\n\n          this.pdfViewer.currentScale = scale;\n          if (stickToPage)\n            this.pdfViewer.scrollPageIntoView({ pageNumber: page.pageNumber, ignoreDestinationZoom: true })\n        }\n      });\n  }\n\n  public clear() {\n    if (this.loadingTask && !this.loadingTask.destroyed) {\n      this.loadingTask.destroy();\n    }\n\n    if (this._pdf) {\n      this._latestScrolledPage = 0;\n      this._pdf.destroy();\n      this._pdf = undefined;\n    }\n\n    this.pdfViewer && this.pdfViewer.setDocument(null as any);\n    this.pdfLinkService && this.pdfLinkService.setDocument(null, null);\n    this.pdfFindController && this.pdfFindController.setDocument(null as any);\n  }\n\n  private getPDFLinkServiceConfig() {\n    const linkTarget = PdfViewerComponent.getLinkTarget(this._externalLinkTarget);\n\n    if (linkTarget) {\n      return { externalLinkTarget: linkTarget };\n    }\n\n    return {};\n  }\n\n  private initEventBus() {\n    this.eventBus = createEventBus(PDFJSViewer, this.destroy$);\n\n    fromEvent<CustomEvent>(this.eventBus, 'pagerendered')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((event) => {\n        this.pageRendered.emit(event);\n      });\n\n    fromEvent<CustomEvent>(this.eventBus, 'pagesinit')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((event) => {\n        this.pageInitialized.emit(event);\n      });\n\n    fromEvent(this.eventBus, 'pagechanging')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(({ pageNumber }: any) => {\n        if (this.pageScrollTimeout) {\n          clearTimeout(this.pageScrollTimeout);\n        }\n\n        this.pageScrollTimeout = window.setTimeout(() => {\n          this._latestScrolledPage = pageNumber;\n          this.pageChange.emit(pageNumber);\n        }, 100);\n      });\n\n    fromEvent<CustomEvent>(this.eventBus, 'textlayerrendered')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((event) => {\n        this.textLayerRendered.emit(event);\n      });\n  }\n\n  private initPDFServices() {\n    this.pdfLinkService = new PDFJSViewer.PDFLinkService({\n      eventBus: this.eventBus,\n      ...this.getPDFLinkServiceConfig()\n    });\n    this.pdfFindController = new PDFJSViewer.PDFFindController({\n      eventBus: this.eventBus,\n      linkService: this.pdfLinkService,\n    });\n  }\n\n  private getPDFOptions(): PDFViewerOptions {\n    return {\n      eventBus: this.eventBus,\n      container: this.element.nativeElement.querySelector('div')!,\n      removePageBorders: !this._showBorders,\n      linkService: this.pdfLinkService,\n      textLayerMode: this._renderText\n        ? this._renderTextMode\n        : RenderTextMode.DISABLED,\n      findController: this.pdfFindController,\n      l10n: new PDFJSViewer.GenericL10n('en'),\n      imageResourcesPath: this._imageResourcesPath,\n      annotationEditorMode: PDFJS.AnnotationEditorType.DISABLE,\n    };\n  }\n\n  private setupViewer() {\n    if (this.pdfViewer) {\n      this.pdfViewer.setDocument(null as any);\n    }\n\n    assign(PDFJS, 'disableTextLayer', !this._renderText);\n\n    this.initPDFServices();\n\n    if (this._showAll) {\n      this.pdfViewer = new PDFJSViewer.PDFViewer(this.getPDFOptions());\n    } else {\n      this.pdfViewer = new PDFJSViewer.PDFSinglePageViewer(this.getPDFOptions());\n    }\n    this.pdfLinkService.setViewer(this.pdfViewer);\n\n    this.pdfViewer._currentPageNumber = this._page;\n  }\n\n  private getValidPageNumber(page: number): number {\n    if (page < 1) {\n      return 1;\n    }\n\n    if (page > this._pdf!.numPages) {\n      return this._pdf!.numPages;\n    }\n\n    return page;\n  }\n\n  private getDocumentParams() {\n    const srcType = typeof this.src;\n\n    if (!this._cMapsUrl) {\n      return this.src;\n    }\n\n    const params: any = {\n      cMapUrl: this._cMapsUrl,\n      cMapPacked: true,\n      enableXfa: true,\n    };\n    params.isEvalSupported = false; // http://cve.org/CVERecord?id=CVE-2024-4367\n\n    if (srcType === 'string') {\n      params.url = this.src;\n    } else if (srcType === 'object') {\n      if ((this.src as any).byteLength !== undefined) {\n        params.data = this.src;\n      } else {\n        Object.assign(params, this.src);\n      }\n    }\n\n    return params;\n  }\n\n  private loadPDF() {\n    if (!this.src) {\n      return;\n    }\n\n    if (this.lastLoaded === this.src) {\n      this.update();\n      return;\n    }\n\n    this.clear();\n\n    this.setupViewer();\n\n    this.loadingTask = getDocument(this.getDocumentParams());\n\n    this.loadingTask!.onProgress = (progressData: PDFProgressData) => {\n      this.onProgress.emit(progressData);\n    };\n\n    const src = this.src;\n\n    from(this.loadingTask!.promise as Promise<PDFDocumentProxy>)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe({\n        next: (pdf) => {\n          this._pdf = pdf;\n          this.lastLoaded = src;\n\n          this.afterLoadComplete.emit(pdf);\n          this.resetPdfDocument();\n\n          this.update();\n        },\n        error: (error) => {\n          this.lastLoaded = null;\n          this.onError.emit(error);\n        }\n      });\n  }\n\n  private update() {\n    this.page = this._page;\n\n    this.render();\n  }\n\n  private render() {\n    this._page = this.getValidPageNumber(this._page);\n\n    if (\n      this._rotation !== 0 ||\n      this.pdfViewer.pagesRotation !== this._rotation\n    ) {\n      // wait until at least the first page is available.\n      this.pdfViewer.firstPagePromise?.then(\n        () => (this.pdfViewer.pagesRotation = this._rotation)\n      );\n    }\n\n    if (this._stickToPage) {\n      setTimeout(() => {\n        this.pdfViewer.currentPageNumber = this._page;\n      });\n    }\n\n    if (!this.pdfViewer._pages?.length) {\n      // the first time we wait until pages init\n      const sub = this.pageInitialized.subscribe(() => {\n        this.updateSize();\n        sub.unsubscribe();\n      })\n    } else {\n      this.updateSize();\n    }\n  }\n\n  private getScale(viewportWidth: number, viewportHeight: number) {\n    const borderSize = this._showBorders ? 2 * PdfViewerComponent.BORDER_WIDTH : 0;\n    const pdfContainerWidth = this.pdfViewerContainer.nativeElement.clientWidth - borderSize;\n    const pdfContainerHeight = this.pdfViewerContainer.nativeElement.clientHeight - borderSize;\n\n    if (\n      pdfContainerHeight === 0 ||\n      viewportHeight === 0 ||\n      pdfContainerWidth === 0 ||\n      viewportWidth === 0\n    ) {\n      return 1;\n    }\n\n    let ratio = 1;\n    switch (this._zoomScale) {\n      case 'page-fit':\n        ratio = Math.min(\n          pdfContainerHeight / viewportHeight,\n          pdfContainerWidth / viewportWidth\n        );\n        break;\n      case 'page-height':\n        ratio = pdfContainerHeight / viewportHeight;\n        break;\n      case 'page-width':\n      default:\n        ratio = pdfContainerWidth / viewportWidth;\n        break;\n    }\n\n    return (this._zoom * ratio) / PdfViewerComponent.CSS_UNITS;\n  }\n\n  private resetPdfDocument() {\n    this.pdfLinkService.setDocument(this._pdf, null);\n    this.pdfFindController.setDocument(this._pdf!);\n    this.pdfViewer.setDocument(this._pdf!);\n  }\n\n  private initialize(): void {\n    if (isSSR() || !this.isVisible) {\n      return;\n    }\n\n    this.isInitialized = true;\n    this.initEventBus();\n    this.setupViewer();\n  }\n\n  private setupResizeListener(): void {\n    if (isSSR()) {\n      return;\n    }\n\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(window, 'resize')\n        .pipe(\n          debounceTime(100),\n          filter(() => this._canAutoResize && !!this._pdf),\n          takeUntil(this.destroy$)\n        )\n        .subscribe(() => {\n          this.updateSize();\n        });\n    });\n  }\n}\n","/**\n * Created by vadimdez on 01/11/2016.\n */\nimport { NgModule } from '@angular/core';\n\nimport { PdfViewerComponent } from './pdf-viewer.component';\n\nexport * from './typings';\n\n@NgModule({\n  declarations: [PdfViewerComponent],\n  exports: [PdfViewerComponent]\n})\nexport class PdfViewerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}