{"version":3,"sources":["jsdelivr-header.js","/npm/@wemaintain/src/app/pdf-viewer/pager/pager.component.ts","/npm/@wemaintain/src/app/utils/event-bus-utils.ts","/npm/@wemaintain/src/app/pdf-viewer/pdf-viewer.component.ts","/npm/@wemaintain/src/app/pdf-viewer/services/icon.service.ts","/npm/@wemaintain/src/app/pdf-viewer/pdf-viewer.module.ts"],"names":[],"mappings":"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","file":"/npm/@wemaintain/pdf-viewer@1.0.20/bundles/wemaintain-pdf-viewer.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@wemaintain/pdf-viewer@1.0.20/bundles/wemaintain-pdf-viewer.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n} from '@angular/core'\n\n@Component({\n  selector: 'app-pager',\n  templateUrl: './pager.component.html',\n  styleUrls: ['./pager.component.scss'],\n})\nexport class PagerComponent implements OnInit {\n  /** Current page */\n  @Input() page: number\n\n  /** Current zoom level */\n  @Input() zoom: number\n\n  /** Total pages */\n  @Input() numPages: number\n\n  /** Emits when the current page has changed */\n  @Output() pageChange: EventEmitter<number> = new EventEmitter()\n\n  /** Emits when the zoom has changed */\n  @Output() zoomChange: EventEmitter<number> = new EventEmitter()\n\n  constructor() {}\n\n  ngOnInit(): void {}\n\n  public nextPage(): void {\n    this.pageChange.emit(this.page + 1)\n  }\n\n  public previousPage(): void {\n    this.pageChange.emit(this.page - 1)\n  }\n\n  public zoomIn(): void {\n    this.zoom = Math.round((this.zoom + 0.1) * 100) / 100\n    this.zoomChange.emit(this.zoom)\n  }\n\n  public zoomOut(): void {\n    this.zoom = Math.round((this.zoom - 0.1) * 100) / 100\n    this.zoomChange.emit(this.zoom)\n  }\n}\n","export function _createEventBus(pdfJsViewer: any): any {\n  const globalEventBus = new pdfJsViewer.EventBus(true)\n  attachDOMEventsToEventBus(globalEventBus)\n\n  return globalEventBus\n}\n\nfunction attachDOMEventsToEventBus(eventBus: any) {\n  eventBus.on('documentload', function () {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('documentload', true, true, {})\n    window.dispatchEvent(event)\n  })\n  eventBus.on('pagerendered', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('pagerendered', true, true, {\n      pageNumber: evt.pageNumber,\n      cssTransform: evt.cssTransform,\n    })\n    evt.source.div.dispatchEvent(event)\n  })\n  eventBus.on('textlayerrendered', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('textlayerrendered', true, true, {\n      pageNumber: evt.pageNumber,\n    })\n    evt.source.textLayerDiv.dispatchEvent(event)\n  })\n  eventBus.on('pagechanging', function (evt: any) {\n    const event: any = document.createEvent('UIEvents')\n    event.initEvent('pagechanging', true, true)\n    event['pageNumber'] = evt.pageNumber\n    evt.source.container.dispatchEvent(event)\n  })\n  eventBus.on('pagesinit', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('pagesinit', true, true, null)\n    evt.source.container.dispatchEvent(event)\n  })\n  eventBus.on('pagesloaded', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('pagesloaded', true, true, {\n      pagesCount: evt.pagesCount,\n    })\n    evt.source.container.dispatchEvent(event)\n  })\n  eventBus.on('scalechange', function (evt: any) {\n    const event: any = document.createEvent('UIEvents')\n    event.initEvent('scalechange', true, true)\n    event['scale'] = evt.scale\n    event['presetValue'] = evt.presetValue\n    evt.source.container.dispatchEvent(event)\n  })\n  eventBus.on('updateviewarea', function (evt: any) {\n    const event: any = document.createEvent('UIEvents')\n    event.initEvent('updateviewarea', true, true)\n    event['location'] = evt.location\n    evt.source.container.dispatchEvent(event)\n  })\n  eventBus.on('find', function (evt: any) {\n    if (evt.source === window) {\n      return // event comes from FirefoxCom, no need to replicate\n    }\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('find' + evt.type, true, true, {\n      query: evt.query,\n      phraseSearch: evt.phraseSearch,\n      caseSensitive: evt.caseSensitive,\n      highlightAll: evt.highlightAll,\n      findPrevious: evt.findPrevious,\n    })\n    window.dispatchEvent(event)\n  })\n  eventBus.on('attachmentsloaded', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('attachmentsloaded', true, true, {\n      attachmentsCount: evt.attachmentsCount,\n    })\n    evt.source.container.dispatchEvent(event)\n  })\n  eventBus.on('sidebarviewchanged', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('sidebarviewchanged', true, true, {\n      view: evt.view,\n    })\n    evt.source.outerContainer.dispatchEvent(event)\n  })\n  eventBus.on('pagemode', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('pagemode', true, true, {\n      mode: evt.mode,\n    })\n    evt.source.pdfViewer.container.dispatchEvent(event)\n  })\n  eventBus.on('namedaction', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('namedaction', true, true, {\n      action: evt.action,\n    })\n    evt.source.pdfViewer.container.dispatchEvent(event)\n  })\n  eventBus.on('presentationmodechanged', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('presentationmodechanged', true, true, {\n      active: evt.active,\n      switchInProgress: evt.switchInProgress,\n    })\n    window.dispatchEvent(event)\n  })\n  eventBus.on('outlineloaded', function (evt: any) {\n    const event = document.createEvent('CustomEvent')\n    event.initCustomEvent('outlineloaded', true, true, {\n      outlineCount: evt.outlineCount,\n    })\n    evt.source.container.dispatchEvent(event)\n  })\n}\n\nexport const createEventBus = _createEventBus\n","/**\n * Created by vadimdez on 21/06/16.\n */\nimport {\n  AfterViewChecked,\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild,\n} from '@angular/core'\nimport {\n  PDFDocumentProxy,\n  PDFPageProxy,\n  PDFProgressData,\n  PDFSource,\n} from './typings'\nimport { createEventBus } from '../utils/event-bus-utils'\nimport * as pdf from 'pdfjs-dist/es5/build/pdf'\nimport * as pdfViewer from 'pdfjs-dist/es5/web/pdf_viewer'\n\nlet PDFJS: any\nlet PDFJSViewer: any\n\nfunction isSSR() {\n  return typeof window === 'undefined'\n}\n\nif (!isSSR()) {\n  PDFJS = pdf\n  PDFJSViewer = pdfViewer\n\n  PDFJS.verbosity = PDFJS.VerbosityLevel.ERRORS\n}\n\nexport enum RenderTextMode {\n  DISABLED,\n  ENABLED,\n  ENHANCED,\n}\n\nexport interface Annotation {\n  index: number | undefined\n  positionX: number\n  positionY: number\n}\n\nexport interface Coordinates {\n  positionX: number\n  positionY: number\n}\n\nexport interface TextSelection {\n  positionX: number\n  positionY: number\n  text: string | null\n}\n\n@Component({\n  selector: 'pdf-viewer',\n  templateUrl: './pdf-viewer.component.html',\n  styleUrls: ['./pdf-viewer.component.scss'],\n})\nexport class PdfViewerComponent\n  implements OnChanges, OnInit, OnDestroy, AfterViewChecked, AfterViewInit\n{\n  @ViewChild('pdfViewerContainer', { static: false })\n  pdfViewerContainer: ElementRef\n\n  @ViewChild('annotationCardContent', { static: false })\n  annotationCardContent: ElementRef\n\n  static CSS_UNITS: number = 96.0 / 72.0\n  static BORDER_WIDTH: number = 9\n\n  private isVisible: boolean = false\n  private pdfMultiPageViewer: any\n  private pdfMultiPageLinkService: any\n  private pdfMultiPageFindController: any\n\n  private pdfSinglePageViewer: any\n  private pdfSinglePageLinkService: any\n  private pdfSinglePageFindController: any\n\n  private _cMapsUrl =\n    typeof PDFJS !== 'undefined'\n      ? `https://unpkg.com/pdfjs-dist@${(PDFJS as any).version}/cmaps/`\n      : null\n  private _renderText = true\n  private _renderTextMode: RenderTextMode = RenderTextMode.ENABLED\n  private _stickToPage = false\n  private _originalSize = true\n  private _pdf: PDFDocumentProxy | null\n  private _page = 1\n  private _zoom = 1\n  private _zoomScale: 'page-height' | 'page-fit' | 'page-width' = '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\n  private _latestScrolledPage: number\n\n  private resizeTimeout: NodeJS.Timer\n  private pageScrollTimeout: NodeJS.Timer\n  private isInitialized = false\n  private loadingTask: any\n\n  public annotationCardCoordinates: Coordinates | null\n  public annotationCardOffset: number | null\n  public invertTriangle: boolean\n  public offsetLeft: number\n  public showAnnotations: boolean\n  public pdfLoading: boolean = true\n\n  @Output() afterLoadComplete = new EventEmitter<PDFDocumentProxy>()\n  @Output() pageRendered = new EventEmitter<CustomEvent>()\n  @Output() textLayerRendered = new EventEmitter<CustomEvent>()\n  @Output() errored = new EventEmitter<any>()\n  @Output() progressChange = new EventEmitter<PDFProgressData>()\n  @Output() pageChange: EventEmitter<number> = new EventEmitter<number>(true)\n  @Output()\n  annotationCardOpened: EventEmitter<TextSelection> = new EventEmitter<TextSelection>()\n  @Output()\n  annotationEdit: EventEmitter<Annotation> = new EventEmitter<Annotation>()\n  @Output() annotationCardClosed: EventEmitter<void> = new EventEmitter<void>()\n\n  /** PDF source */\n  @Input()\n  src: string | Uint8Array | PDFSource\n\n  /** List of annotations  */\n  @Input()\n  annotations: Annotation[]\n\n  /** Currently active annotation  */\n  @Input()\n  activeAnnotation: Annotation\n\n  /** Position of the annotation card */\n  @Input()\n  cardPosition: 'top' | 'bottom' = 'bottom'\n\n  @Input('c-maps-url')\n  set cMapsUrl(cMapsUrl: string) {\n    this._cMapsUrl = cMapsUrl\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 = true\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: 'page-height' | 'page-fit' | 'page-width') {\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  get page() {\n    return this._page\n  }\n\n  set page(_page: any) {\n    _page = parseInt(_page, 10) || 1\n    const orginalPage = _page\n\n    if (this._pdf) {\n      _page = this.getValidPageNumber(_page)\n    }\n\n    this._page = _page\n    if (orginalPage !== _page) {\n      this.pageChange.emit(_page)\n    }\n  }\n\n  get numPages() {\n    return this._pdf?.numPages\n  }\n\n  static getLinkTarget(type: string) {\n    switch (type) {\n      case 'blank':\n        return (<any>PDFJS).LinkTarget.BLANK\n      case 'none':\n        return (<any>PDFJS).LinkTarget.NONE\n      case 'self':\n        return (<any>PDFJS).LinkTarget.SELF\n      case 'parent':\n        return (<any>PDFJS).LinkTarget.PARENT\n      case 'top':\n        return (<any>PDFJS).LinkTarget.TOP\n    }\n\n    return null\n  }\n\n  static setExternalLinkTarget(type: string) {\n    const linkTarget = PdfViewerComponent.getLinkTarget(type)\n\n    if (linkTarget !== null) {\n      ;(<any>PDFJS).externalLinkTarget = linkTarget\n    }\n  }\n\n  constructor(\n    private element: ElementRef,\n    private cd: ChangeDetectorRef,\n    private ngZone: NgZone\n  ) {\n    if (isSSR()) {\n      return\n    }\n\n    let pdfWorkerSrc: string\n\n    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://cdnjs.cloudflare.com/ajax/libs/pdf.js/${\n        (PDFJS as any).version\n      }/pdf.worker.min.js`\n    }\n\n    ;(PDFJS as any).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.ngOnInit()\n        this.ngOnChanges({ src: this.src } as any)\n      })\n    }\n  }\n\n  ngOnInit() {\n    if (!isSSR() && this.isVisible) {\n      this.isInitialized = true\n      this.setupMultiPageViewer()\n      this.setupSinglePageViewer()\n    }\n  }\n\n  ngAfterViewInit(): void {\n    this.ngZone.runOutsideAngular(() => this.handleTextSelection())\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) {\n        this.getCurrentViewer().textLayerMode = this._renderText\n          ? this._renderTextMode\n          : RenderTextMode.DISABLED\n        this.resetPdfDocument()\n      } else if ('showAll' in changes) {\n        this.resetPdfDocument()\n      } else if (\n        'activeAnnotation' in changes &&\n        changes.activeAnnotation.currentValue === undefined\n      ) {\n        window?.getSelection()?.removeAllRanges()\n      }\n\n      this.update()\n    }\n\n    if (\n      'activeAnnotation' in changes &&\n      changes.activeAnnotation.currentValue\n    ) {\n      this.calculateCardPosition(this.activeAnnotation)\n    }\n  }\n\n  ngOnDestroy() {\n    this.clear()\n  }\n\n  @HostListener('window:resize', [])\n  public onPageResize() {\n    this.setPageOffsetLeft()\n\n    if (!this._canAutoResize || !this._pdf) {\n      return\n    }\n\n    if (this.resizeTimeout) {\n      clearTimeout(this.resizeTimeout)\n    }\n\n    this.resizeTimeout = setTimeout(() => {\n      this.updateSize()\n    }, 100)\n  }\n\n  get pdfLinkService(): any {\n    return this._showAll\n      ? this.pdfMultiPageLinkService\n      : this.pdfSinglePageLinkService\n  }\n\n  get pdfViewer(): any {\n    return this.getCurrentViewer()\n  }\n\n  get pdfFindController(): any {\n    return this._showAll\n      ? this.pdfMultiPageFindController\n      : this.pdfSinglePageFindController\n  }\n\n  /** Logic when page has changed */\n  public pageChanged(page: number): void {\n    this.page = page\n\n    const currentPage: HTMLElement = document.querySelector(\n      '[data-page-number=\"' + this._page + '\"]'\n    ) as HTMLElement\n    currentPage.scrollIntoView({ behavior: 'smooth' })\n    this.pdfViewer.scrollPageIntoView({ pageNumber: this._page })\n  }\n  public zoomChanged(zoom: number): void {\n    this.zoom = zoom\n    this.updateSize()\n  }\n\n  public openAnnotationForm(textSelection: TextSelection): void {\n    this.annotationCardOpened.emit(textSelection)\n  }\n\n  /** Update size of the PDF Viewer */\n  public updateSize() {\n    const currentViewer = this.getCurrentViewer()\n    ;(this._pdf as PDFDocumentProxy)\n      .getPage(currentViewer.currentPageNumber)\n      .then((page: PDFPageProxy) => {\n        const rotation = this._rotation || page.rotate\n        const viewportWidth =\n          (page as any).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 as any).getViewport({ scale: 1, rotation })\n          scale = this.getScale(viewPort.width, viewPort.height)\n          stickToPage = !this._stickToPage\n        }\n\n        currentViewer._setScale(scale, stickToPage)\n        this.setPageOffsetLeft()\n      })\n  }\n\n  /** Clear and reset pdf viewer */\n  public clear() {\n    if (this.loadingTask && !this.loadingTask.destroyed) {\n      this.loadingTask.destroy()\n    }\n\n    if (this._pdf) {\n      this._pdf.destroy()\n      this._pdf = null\n      this.pdfMultiPageViewer.setDocument(null)\n      this.pdfSinglePageViewer.setDocument(null)\n\n      this.pdfMultiPageLinkService.setDocument(null, null)\n      this.pdfSinglePageLinkService.setDocument(null, null)\n\n      this.pdfMultiPageFindController.setDocument(null)\n      this.pdfSinglePageFindController.setDocument(null)\n    }\n  }\n\n  public detectChangesOnResize(): void {\n    this.cd.markForCheck()\n  }\n\n  /** Emit event when an annotation has been clicked */\n  public editAnnotation(annotation: Annotation): void {\n    this.calculateCardPosition({\n      positionX: annotation.positionX,\n      positionY: annotation.positionY,\n    })\n\n    const el = document.getElementById(\n      annotation?.index?.toString() as string\n    ) as HTMLElement\n    el?.scrollIntoView({\n      block: 'center',\n      behavior: 'smooth',\n    })\n\n    this.annotationEdit.emit(annotation)\n  }\n\n  /** Setup Multipage viewer */\n  private setupMultiPageViewer() {\n    ;(PDFJS as any).disableTextLayer = !this._renderText\n\n    PdfViewerComponent.setExternalLinkTarget(this._externalLinkTarget)\n\n    const eventBus = createEventBus(PDFJSViewer)\n\n    eventBus.on('pagerendered', (e: any) => {\n      this.pageRendered.emit(e)\n      this.showAnnotations = true\n      this.pdfLoading = false\n      this.cd.markForCheck()\n    })\n\n    eventBus.on('pagechanging', (e: any) => {\n      if (this.pageScrollTimeout) {\n        clearTimeout(this.pageScrollTimeout)\n      }\n\n      this.page = e.pageNumber\n      this.cd.markForCheck()\n\n      this.pageScrollTimeout = setTimeout(() => {\n        this._latestScrolledPage = e.pageNumber\n        this.pageChange.emit(e.pageNumber)\n      }, 100)\n    })\n\n    eventBus.on('textlayerrendered', (e: any) => {\n      this.textLayerRendered.emit(e)\n    })\n\n    this.pdfMultiPageLinkService = new PDFJSViewer.PDFLinkService({ eventBus })\n    this.pdfMultiPageFindController = new PDFJSViewer.PDFFindController({\n      linkService: this.pdfMultiPageLinkService,\n      eventBus,\n    })\n\n    const pdfOptions: any = {\n      eventBus: eventBus,\n      container: this.element.nativeElement.querySelector('div'),\n      removePageBorders: !this._showBorders,\n      linkService: this.pdfMultiPageLinkService,\n      textLayerMode: this._renderText\n        ? this._renderTextMode\n        : RenderTextMode.DISABLED,\n      findController: this.pdfMultiPageFindController,\n    }\n\n    this.pdfMultiPageViewer = new PDFJSViewer.PDFViewer(pdfOptions)\n    this.pdfMultiPageLinkService.setViewer(this.pdfMultiPageViewer)\n    this.pdfMultiPageFindController.setDocument(this._pdf)\n  }\n\n  /** Setup single page viewer */\n  private setupSinglePageViewer() {\n    ;(PDFJS as any).disableTextLayer = !this._renderText\n\n    PdfViewerComponent.setExternalLinkTarget(this._externalLinkTarget)\n\n    const eventBus = createEventBus(PDFJSViewer)\n\n    eventBus.on('pagechanging', (e: any) => {\n      if (e.pageNumber !== this._page) {\n        this.page = e.pageNumber\n        this.cd.markForCheck()\n      }\n    })\n\n    eventBus.on('pagerendered', (e: any) => {\n      this.pageRendered.emit(e)\n    })\n\n    eventBus.on('textlayerrendered', (e: any) => {\n      this.textLayerRendered.emit(e)\n    })\n\n    this.pdfSinglePageLinkService = new PDFJSViewer.PDFLinkService({\n      eventBus,\n    })\n    this.pdfSinglePageFindController = new PDFJSViewer.PDFFindController({\n      linkService: this.pdfSinglePageLinkService,\n      eventBus,\n    })\n\n    const pdfOptions: any | any = {\n      eventBus: eventBus,\n      container: this.element.nativeElement.querySelector('div'),\n      removePageBorders: !this._showBorders,\n      linkService: this.pdfSinglePageLinkService,\n      textLayerMode: this._renderText\n        ? this._renderTextMode\n        : RenderTextMode.DISABLED,\n      findController: this.pdfSinglePageFindController,\n    }\n\n    this.pdfSinglePageViewer = new PDFJSViewer.PDFSinglePageViewer(pdfOptions)\n    this.pdfSinglePageLinkService.setViewer(this.pdfSinglePageViewer)\n    this.pdfSinglePageFindController.setDocument(this._pdf)\n\n    this.pdfSinglePageViewer._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 as PDFDocumentProxy).numPages) {\n      return (this._pdf as PDFDocumentProxy).numPages\n    }\n\n    return page\n  }\n\n  /** Get document params */\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    }\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.loadingTask = (PDFJS as any).getDocument(this.getDocumentParams())\n\n    this.loadingTask.onProgress = (progressData: PDFProgressData) => {\n      this.progressChange.emit(progressData)\n    }\n\n    const src = this.src\n    ;(<any>this.loadingTask.promise).then(\n      (pdf: PDFDocumentProxy) => {\n        this._pdf = pdf\n        this.lastLoaded = src\n\n        this.afterLoadComplete.emit(pdf)\n\n        if (!this.pdfMultiPageViewer) {\n          this.setupSinglePageViewer()\n        }\n\n        this.resetPdfDocument()\n\n        this.update()\n      },\n      (error: any) => {\n        this.errored.emit(error)\n      }\n    )\n  }\n\n  /** Actions on update */\n  private update() {\n    this.page = this._page\n\n    this.render()\n    this.cd.markForCheck()\n  }\n\n  /** Render PDF */\n  private render() {\n    this._page = this.getValidPageNumber(this._page)\n    const currentViewer = this.getCurrentViewer()\n\n    if (\n      this._rotation !== 0 ||\n      currentViewer.pagesRotation !== this._rotation\n    ) {\n      setTimeout(() => {\n        currentViewer.pagesRotation = this._rotation\n      })\n    }\n\n    if (this._stickToPage) {\n      setTimeout(() => {\n        currentViewer.currentPageNumber = this._page\n      })\n    }\n\n    this.updateSize()\n  }\n\n  /** Get current scale used\n   * @param { number }\n   * @param { number }\n   */\n  private getScale(viewportWidth: number, viewportHeight: number) {\n    const borderSize = this._showBorders\n      ? 2 * PdfViewerComponent.BORDER_WIDTH\n      : 0\n    const pdfContainerWidth =\n      this.pdfViewerContainer.nativeElement.clientWidth - borderSize\n    const pdfContainerHeight =\n      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  /** Get current viewer type */\n  private getCurrentViewer(): any {\n    return this._showAll ? this.pdfMultiPageViewer : this.pdfSinglePageViewer\n  }\n\n  /** Resets document values to default */\n  private resetPdfDocument() {\n    this.pdfFindController.setDocument(this._pdf)\n\n    if (this._showAll) {\n      this.pdfSinglePageViewer.setDocument(null)\n      this.pdfSinglePageLinkService.setDocument(null)\n\n      this.pdfMultiPageViewer.setDocument(this._pdf)\n      this.pdfMultiPageLinkService.setDocument(this._pdf, null)\n    } else {\n      this.pdfMultiPageViewer.setDocument(null)\n      this.pdfMultiPageLinkService.setDocument(null)\n\n      this.pdfSinglePageViewer.setDocument(this._pdf)\n      this.pdfSinglePageLinkService.setDocument(this._pdf, null)\n    }\n  }\n\n  /** Handles behavior when selecting text */\n  private handleTextSelection(): void {\n    document\n      .querySelector('.pdfViewer')\n      ?.addEventListener('mouseup', (event: any) => {\n        this.annotationCardClosed.emit()\n        const selection: Selection = window?.getSelection() as Selection\n        const textSelection = selection.toString()\n\n        if (!this.activeAnnotation) {\n          const scrollTop = this.pdfViewerContainer.nativeElement.scrollTop\n          const offsetTop =\n            this.pdfViewerContainer.nativeElement.parentElement.parentElement\n              .offsetTop\n          const scrollLeft = this.pdfViewerContainer.nativeElement.scrollLeft\n\n          const position = {\n            positionY: Math.round(\n              (event.pageY - 6 - offsetTop + scrollTop) / this.zoom\n            ),\n            positionX: Math.round(\n              (event.pageX - 120 - this.offsetLeft + scrollLeft) / this.zoom\n            ),\n          }\n\n          this.calculateCardPosition(position)\n\n          this.openAnnotationForm({\n            text: textSelection || null,\n            positionX: position.positionX,\n            positionY: position.positionY,\n          })\n\n          this.pdfViewerContainer.nativeElement.scroll({\n            top:\n              (position.positionY - (this.invertTriangle ? 500 : 360)) *\n              this.zoom,\n            behavior: 'smooth',\n          })\n        }\n      })\n  }\n\n  /** Calculate xy position of card\n   * @param { Coordinates }\n   */\n  private calculateCardPosition(position: Coordinates): void {\n    let adjustedPosition\n\n    const offsetTop = this.pdfViewerContainer.nativeElement.scrollTop\n    const scrollLeft = this.pdfViewerContainer.nativeElement.scrollLeft\n\n    const offsetRight =\n      this.pdfViewerContainer.nativeElement.offsetWidth -\n      position.positionX -\n      this.offsetLeft +\n      scrollLeft +\n      20\n\n    const offsetBottom =\n      this.pdfViewerContainer.nativeElement.scrollHeight - position.positionY\n\n    if (offsetRight < 360) {\n      const adjustedCardWidth = 340\n\n      this.annotationCardOffset = adjustedCardWidth - offsetRight\n\n      adjustedPosition = {\n        positionY: position.positionY,\n        positionX: position.positionX - adjustedCardWidth + offsetRight,\n      }\n    } else if (position.positionX < 70) {\n      adjustedPosition = {\n        positionY: position.positionY,\n        positionX: position.positionX + 70,\n      }\n\n      this.annotationCardOffset = -70\n    } else {\n      adjustedPosition = {\n        positionY: position.positionY,\n        positionX: position.positionX,\n      }\n\n      this.annotationCardOffset = 0\n    }\n\n    if (\n      offsetBottom < 360 ||\n      (this.cardPosition === 'top' && position.positionY > 400)\n    ) {\n      this.invertTriangle = true\n    } else {\n      this.invertTriangle = false\n    }\n\n    this.annotationCardCoordinates = { ...adjustedPosition }\n  }\n\n  private setPageOffsetLeft(): void {\n    this.offsetLeft = (\n      document.querySelector('.page') as HTMLElement\n    ).offsetLeft\n  }\n}\n","import { Injectable } from '@angular/core'\nimport { MatIconRegistry } from '@angular/material/icon'\nimport { DomSanitizer } from '@angular/platform-browser'\n\nexport interface SvgIcon {\n  /** The name of the icon */\n  iconName: string\n  /** Its path in our project */\n  url: string\n}\n\n@Injectable()\nexport class IconService {\n  public customIcons: SvgIcon[] = [\n    {\n      iconName: 'add-sm',\n      url: '/assets/icons/add-sm.svg',\n    },\n    {\n      iconName: 'remove-sm',\n      url: '/assets/icons/remove-sm.svg',\n    },\n  ]\n\n  constructor(\n    protected readonly matIconRegistry: MatIconRegistry,\n    protected readonly domSanitizer: DomSanitizer\n  ) {\n    this._init()\n  }\n\n  protected _init(): void {\n    this.customIcons.forEach((icon: SvgIcon): void => {\n      this.matIconRegistry.addSvgIcon(\n        icon.iconName,\n        this.domSanitizer.bypassSecurityTrustResourceUrl(icon.url)\n      )\n    })\n  }\n}\n","/**\n * Created by vadimdez on 01/11/2016.\n */\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner'\nimport { AngularResizedEventModule } from 'angular-resize-event'\nimport { PagerComponent } from './pager/pager.component'\nimport { PdfViewerComponent } from './pdf-viewer.component'\nimport { IconService } from './services/icon.service'\n\nexport * from './typings'\n\n@NgModule({\n  declarations: [PdfViewerComponent, PagerComponent],\n  imports: [\n    CommonModule,\n    MatIconModule,\n    OverlayModule,\n    MatProgressSpinnerModule,\n    AngularResizedEventModule,\n  ],\n  exports: [PdfViewerComponent],\n  providers: [IconService],\n})\nexport class PdfViewerModule {}\n"]}