{"version":3,"file":"ngx-extended-pdf-viewer.mjs","sources":["../../../projects/ngx-extended-pdf-viewer/src/lib/events/find-result.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-default-options.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/verbosity-level.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dummy-components/pdf-dummy-components.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dummy-components/pdf-dummy-components.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-dark-theme/pdf-dark-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-dark-theme/pdf-dark-theme.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-light-theme/pdf-light-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-light-theme/pdf-light-theme.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-error-message/pdf-error-message.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-error-message/pdf-error-message.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-password-dialog/pdf-password-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-password-dialog/pdf-password-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-notification-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/acroform-dark-theme/pdf-acroform-dark-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/acroform-default-theme/pdf-acroform-default-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-original-theme/pdf-original.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-original-theme/pdf-original.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-bookmark/pdf-bookmark.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-bookmark/pdf-bookmark.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-context-menu/pdf-context-menu.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-context-menu/pdf-context-menu.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-download/pdf-download.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-download/pdf-download.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-find-button/pdf-find-button.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-find-button/pdf-find-button.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-current-page-only/pdf-find-current-page-only.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-current-page-only/pdf-find-current-page-only.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-range/pdf-find-range.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-range/pdf-find-range.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-cursor-tools.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-hand-tool/pdf-hand-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-hand-tool/pdf-hand-tool.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-open-file/pdf-open-file.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-open-file/pdf-open-file.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-paging-area.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-paging-area.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-print/pdf-print.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-print/pdf-print.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page/pdf-rotate-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page/pdf-rotate-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-select-tool/pdf-select-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-select-tool/pdf-select-tool.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toolbar/pdf-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toolbar/pdf-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/translate.pipe.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-common.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer-server.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-viewer.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pinch-on-mobile-support.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/unit-to-px.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/options/ngx-console.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/link-target.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/password-prompt.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-document-properties-extractor.ts","../../../projects/ngx-extended-pdf-viewer/src/public_api.ts","../../../projects/ngx-extended-pdf-viewer/src/ngx-extended-pdf-viewer.ts"],"sourcesContent":["export enum FindState {\n  FOUND = 0,\n  NOT_FOUND = 1,\n  WRAPPED = 2,\n  PENDING = 3\n}\n\nexport interface FindResultMatchesCount {\n  current?: number;\n  total?: number;\n  matches?: Array<any>;\n  matchesLength?: Array<any>;\n  matchesColor?: Array<any>;\n\n}\n\nexport interface FindResult {\n  state: FindState;\n  previous: any;\n  matchesCount: FindResultMatchesCount;\n}\n","const _isIE11 = typeof window === 'undefined' ? false : !!(<any>window).MSInputMethodContext && !!(<any>document).documentMode;\nconst isEdge = typeof navigator === 'undefined' || /Edge\\/\\d./i.test(navigator.userAgent);\nconst needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n\nexport const pdfjsVersion = '2.14.304';\nexport const pdfjsBleedingEdgeVersion = '2.15.350';\nexport function getVersionSuffix(folder: string): string {\n  if (folder && folder.includes('bleeding-edge')) {\n    return pdfjsBleedingEdgeVersion;\n  }\n  return pdfjsVersion;\n}\n\nexport let pdfDefaultOptions = {\n  needsES5: _isIE11 || isEdge || needsES5,\n  cursorToolOnLoad: 0,\n  defaultUrl: '',\n  defaultZoomValue: undefined,\n  disableHistory: false,\n  disablePageLabels: false,\n  enablePrintAutoRotate: false,\n  enableWebGL: false,\n  eventBusDispatchToDOM: false,\n  externalLinkRel: 'noopener noreferrer nofollow',\n  externalLinkTarget: 0,\n  historyUpdateUrl: false,\n  ignoreDestinationZoom: false,\n  imageResourcesPath: './images/',\n  maxCanvasPixels: 16777216,\n  pdfBugEnabled: false,\n  rangeChunkSize: 65536,\n  removePageBorders: false,\n  renderer: 'canvas',\n  renderInteractiveForms: true, // renamed - until pdf.js 2.10\n  renderForms: true, // renamed - since pdf.js 2.11\n  enableXfa: true,\n  sidebarViewOnLoad: -1,\n  scrollModeOnLoad: -1,\n  spreadModeOnLoad: -1,\n  textLayerMode: 2,\n  useOnlyCssZoom: false,\n  viewOnLoad: 0,\n  cMapPacked: true,\n  cMapUrl: () => `./${pdfDefaultOptions.assetsFolder}/cmaps/`,\n  disableAutoFetch: false,\n  disableCreateObjectURL: false,\n  disableFontFace: false,\n  disableRange: false,\n  disableStream: false,\n  isEvalSupported: true,\n  maxImageSize: -1,\n  pdfBug: false,\n  postMessageTransfers: true,\n  verbosity: 1,\n  workerPort: null,\n  assetsFolder: 'assets',\n  sandboxBundleSrc: () =>\n    pdfDefaultOptions.needsES5\n      ? `./${pdfDefaultOptions.assetsFolder}/pdf.sandbox-${getVersionSuffix(pdfDefaultOptions.assetsFolder)}-es5.js`\n      : `./${pdfDefaultOptions.assetsFolder}/pdf.sandbox-${getVersionSuffix(pdfDefaultOptions.assetsFolder)}.js`,\n  workerSrc: () =>\n    pdfDefaultOptions.needsES5\n      ? `./${pdfDefaultOptions.assetsFolder}/pdf.worker-${getVersionSuffix(pdfDefaultOptions.assetsFolder)}-es5.js`\n      : `./${pdfDefaultOptions.assetsFolder}/pdf.worker-${getVersionSuffix(pdfDefaultOptions.assetsFolder)}.js`,\n  standardFontDataUrl: () => `../${pdfDefaultOptions.assetsFolder}/standard_fonts/`,\n\n  // options specific to ngx-extended-pdf-viewer (as opposed to being used by pdf.js)\n  doubleTapZoomFactor: 'page-width',\n  enableScripting: true,\n  defaultCacheSize: 50,\n  passwordPrompt: undefined,\n  annotationEditorEnabled: false,\n};\n\nif (typeof window !== 'undefined') {\n  if ((<any>window).pdfDefaultOptions) {\n    pdfDefaultOptions = (<any>window).pdfDefaultOptions;\n  } else {\n    (<any>window).pdfDefaultOptions = pdfDefaultOptions;\n  }\n}\n","export enum VerbosityLevel {\n  ERRORS = 0,\n  WARNINGS = 1,\n  INFOS = 5\n};\n","import { Component } from '@angular/core';\n\n/** List of all fields that can be customized */\nconst requiredIds = [\n  'toolbarViewer',\n  'numPages',\n  'pageNumber',\n  'scaleSelectContainer',\n  'customScaleOption',\n  'scaleSelect',\n  'scrollPage',\n  'previous',\n  'next',\n  'zoomIn',\n  'zoomOut',\n  'viewFind',\n  'openFile',\n  'print',\n  'presentationMode',\n  'download',\n  'viewBookmark',\n  'secondaryToolbar',\n  'secondaryToolbarToggle',\n  'secondaryToolbarButtonContainer',\n  'secondaryPresentationMode',\n  'secondaryOpenFile',\n  'secondaryPrint',\n  'secondaryDownload',\n  'secondaryViewBookmark',\n  'firstPage',\n  'lastPage',\n  'pageRotateCw',\n  'pageRotateCcw',\n  'cursorSelectTool',\n  'cursorHandTool',\n  'scrollVertical',\n  'scrollHorizontal',\n  'scrollWrapped',\n  'spreadNone',\n  'spreadOdd',\n  'spreadEven',\n  'documentProperties',\n  'contextFirstPage',\n  'contextLastPage',\n  'contextPageRotateCw',\n  'contextPageRotateCcw',\n  'currentOutlineItem',\n  'outerContainer',\n  'viewerContainer',\n  'sidebarToggle',\n  'viewThumbnail',\n  'viewOutline',\n  'viewAttachments',\n  'thumbnailView',\n  'outlineView',\n  'attachmentsView',\n  'outerContainer',\n  'sidebarResizer',\n  'outlineOptionsContainer',\n  'findbar',\n  'viewFind',\n  'findInput',\n  'findInputMultiline',\n  'findHighlightAll',\n  'findCurrentPage',\n  'findRange',\n  'findMatchCase',\n  'findMatchDiacritics',\n  'findEntireWord',\n  'findMultipleSearchTexts',\n  'findIgnoreAccents',\n  'findMsg',\n  'findResultsCount',\n  'findPrevious',\n  'findNext',\n  'findFuzzy',\n  'passwordOverlay',\n  'passwordText',\n  'password',\n  'passwordSubmit',\n  'passwordCancel',\n  'documentPropertiesOverlay',\n  'documentPropertiesClose',\n  'fileNameField',\n  'fileSizeField',\n  'titleField',\n  'authorField',\n  'subjectField',\n  'keywordsField',\n  'creationDateField',\n  'modificationDateField',\n  'creatorField',\n  'producerField',\n  'versionField',\n  'pageCountField',\n  'pageSizeField',\n  'linearizedField',\n  'errorWrapper',\n  'errorMessage',\n  'errorClose',\n  'errorMoreInfo',\n  'errorShowMore',\n  'errorShowLess',\n  'scaleSelectContainer',\n  'viewAttachments',\n  'viewLayers',\n  'viewThumbnail',\n  'viewOutline',\n  'editorModeButtons',\n  'editorNone',\n  'editorFreeText',\n];\n\n@Component({\n  selector: 'pdf-dummy-components',\n  templateUrl: './pdf-dummy-components.component.html',\n})\nexport class PdfDummyComponentsComponent {\n  private dummyComponentsContainer: Element;\n\n  public addMissingStandardWidgets(): void {\n    this.dummyComponentsContainer = document.getElementsByClassName('dummy-pdf-viewer-components')[0];\n    const container = this.dummyComponentsContainer as HTMLElement;\n    if (container) {\n      for (let i = 0; i < container.children.length; i++) {\n        const child = container.firstChild;\n        if (child) {\n          container.removeChild(child);\n        }\n      }\n    }\n\n    requiredIds.forEach((id) => {\n      if (this.needsDummyWidget(id)) {\n        const dummy = document.createElement('span');\n        dummy.id = id;\n        dummy.className = 'invisible dummy-component';\n        this.dummyComponentsContainer.appendChild(dummy);\n      }\n    });\n\n    if (this.needsDummyWidget('scaleSelect')) {\n      const dummy = document.createElement('select');\n      dummy.id = 'scaleSelect';\n      dummy.className = 'invisible dummy-component';\n      this.dummyComponentsContainer.appendChild(dummy);\n    }\n  }\n\n  private needsDummyWidget(id: string): boolean {\n    const widget = document.getElementById(id);\n    if (!widget) {\n      return true;\n    }\n    return false;\n  }\n}\n","<span class=\"invisible dummy-pdf-viewer-components\">\n</span>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-dark-theme',\n  templateUrl: './pdf-dark-theme.component.html',\n  styleUrls: ['./colors.scss', '../common/print.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfDarkThemeComponent {}\n","","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-light-theme',\n  templateUrl: './pdf-light-theme.component.html',\n  styleUrls: ['./colors.scss', '../common/print.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfLightThemeComponent {}\n","","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Input, OnChanges, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\n@Component({\n  selector: 'pdf-dynamic-css',\n  templateUrl: './dynamic-css.component.html',\n  styleUrls: ['./dynamic-css.component.css']\n})\nexport class DynamicCssComponent implements OnInit, OnChanges, OnDestroy {\n  @Input()\n  public zoom = 1.0;\n\n  @Input()\n  public width = 100;\n\n  public xs = 490;\n\n  public sm = 560;\n\n  public md = 610;\n\n  public lg = 660;\n\n  public xl = 740;\n\n  public xxl = 830;\n\n  public get style(): string {\n    return `\n@media all and (max-width: ${this.xl}px) {\n  #toolbarViewerMiddle {\n    display: table;\n    margin: auto;\n    left: auto;\n    position: inherit;\n    transform: none;\n  }\n}\n\n@media all and (max-width: 840px) {\n  #sidebarContent {\n    background-color: rgba(0, 0, 0, 0.7);\n  }\n\n  html[dir='ltr'] #outerContainer.sidebarOpen #viewerContainer {\n    left: 0px !important;\n  }\n  html[dir='rtl'] #outerContainer.sidebarOpen #viewerContainer {\n    right: 0px !important;\n  }\n\n  #outerContainer .hiddenLargeView,\n  #outerContainer .hiddenMediumView {\n    display: inherit;\n  }\n  #outerContainer .visibleLargeView,\n  #outerContainer .visibleMediumView {\n    display: none;\n  }\n}\n\n@media all and (max-width: ${this.lg}px) {\n  .toolbarButtonSpacer {\n    width: 15px;\n  }\n\n  #outerContainer .hiddenLargeView {\n    display: none;\n  }\n  #outerContainer .visibleLargeView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.md}px) {\n  .toolbarButtonSpacer {\n    display: none;\n  }\n  #outerContainer .hiddenMediumView {\n    display: none;\n  }\n  #outerContainer .visibleMediumView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.sm}px) {\n  #outerContainer .hiddenSmallView,\n  #outerContainer .hiddenSmallView * {\n    display: none;\n  }\n  #outerContainer .visibleSmallView {\n    display: inherit;\n  }\n  .toolbarButtonSpacer {\n    width: 0;\n  }\n  html[dir='ltr'] .findbar {\n    left: 38px;\n  }\n  html[dir='rtl'] .findbar {\n    right: 38px;\n  }\n}\n\n@media all and (max-width: ${this.xs}px) {\n  #scaleSelectContainer {\n    display: none;\n  }\n}\n\n#outerContainer .visibleXLView,\n#outerContainer .visibleXXLView,\n#outerContainer .visibleTinyView {\n  display: none;\n}\n\n#outerContainer .hiddenXLView,\n#outerContainer .hiddenXXLView {\n  display: unset;\n}\n\n@media all and (max-width: ${this.xl}px) {\n  #outerContainer .hiddenXLView {\n    display: none;\n  }\n  #outerContainer .visibleXLView {\n    display: inherit;\n  }\n\n  #toolbarViewerMiddle {\n    -webkit-transform: translateX(-36%);\n    transform: translateX(-36%);\n    display: unset;\n    margin: unset;\n    left: 50%;\n    position: absolute;\n  }\n}\n\n@media all and (max-width: ${this.xxl}px) {\n  #outerContainer .hiddenXXLView {\n    display: none;\n  }\n  #outerContainer .visibleXXLView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.md}px) {\n  #toolbarViewerMiddle {\n    -webkit-transform: translateX(-26%);\n    transform: translateX(-26%);\n  }\n}\n\n@media all and (max-width: ${this.xs}px) {\n  #outerContainer .hiddenTinyView,\n  #outerContainer .hiddenTinyView * {\n    display: none;\n  }\n  #outerContainer .visibleTinyView {\n    display: inherit;\n  }\n}\n  `;\n}\n\n  constructor(private renderer: Renderer2, @Inject(DOCUMENT) private document: any) {}\n\n  ngOnInit() {\n    this.injectStyle();\n  }\n\n  ngOnChanges() {\n    const fullWith = this.document.body.clientWidth;\n    const partialViewScale = fullWith / this.width;\n    const scaleFactor = partialViewScale * (this.zoom ? this.zoom : 1);\n\n    this.xs = scaleFactor * 490;\n    this.sm = scaleFactor * 560;\n    this.md = scaleFactor * 610;\n    this.lg = scaleFactor * 660;\n    this.xl = scaleFactor * 740;\n    this.xxl = scaleFactor * 830;\n\n    const styles = this.document.getElementById('pdf-dynamic-css');\n    if (styles) {\n      styles.innerHTML = this.style;\n    }\n  }\n\n  private injectStyle() {\n    const styles = this.document.createElement('STYLE') as HTMLStyleElement;\n    styles.id = 'pdf-dynamic-css';\n    styles.innerHTML = this.style;\n    this.renderer.appendChild(this.document.head, styles);\n  }\n\n  public ngOnDestroy() {\n    const styles = this.document.getElementById('pdf-dynamic-css') as HTMLElement;\n    if (styles && styles.parentElement) {\n      (styles.parentElement as any).removeChild(styles);\n    }\n  }\n}\n","","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { FindResultMatchesCount, FindState } from './events/find-result';\nimport { PageRenderedEvent } from './events/page-rendered-event';\nimport { PagesLoadedEvent } from './events/pages-loaded-event';\nimport { PdfDownloadedEvent } from './events/pdf-downloaded-event';\nimport { PdfLoadedEvent } from './events/pdf-loaded-event';\nimport { PdfThumbnailDrawnEvent } from './events/pdf-thumbnail-drawn-event';\nimport { ProgressBarEvent } from './events/progress-bar-event';\nimport { TextLayerRenderedEvent } from './events/textlayer-rendered';\nimport { FormDataType } from './ngx-extended-pdf-viewer.component';\nimport { PdfBackground } from './options/pdf-background';\nimport { pdfDefaultOptions } from './options/pdf-default-options';\nimport { ScrollModeType } from './options/pdf-viewer';\nimport { VerbosityLevel } from './options/verbosity-level';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\n\n@Component({\n  selector: 'ngx-extended-pdf-viewer',\n  templateUrl: './ngx-extended-pdf-viewer-server.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxExtendedPdfViewerServerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n  public static ngxExtendedPdfViewerInitialized = false;\n\n  /**\n   * The dummy components are inserted automatically when the user customizes the toolbar\n   * without adding every original toolbar item. Without the dummy components, the\n   * initialization code of pdf.js crashes because it assume that every standard widget is there.\n   */\n  @ViewChild(PdfDummyComponentsComponent)\n  public dummyComponents: PdfDummyComponentsComponent;\n\n  @ViewChild('root')\n  public root: ElementRef;\n\n  /* UI templates */\n  @Input()\n  public customFindbarInputArea: TemplateRef<any>;\n\n  @Input()\n  public customToolbar: TemplateRef<any>;\n\n  @Input()\n  public customFindbar: TemplateRef<any>;\n\n  @Input()\n  public customFindbarButtons: TemplateRef<any> | undefined = undefined;\n\n  @Input()\n  public customSecondaryToolbar: TemplateRef<any>;\n\n  @Input()\n  public customSidebar: TemplateRef<any>;\n\n  @Input()\n  public customThumbnail: TemplateRef<any>;\n\n  @Input()\n  public customFreeFloatingBar: TemplateRef<any>;\n\n  @Input()\n  public showFreeFloatingBar = true;\n\n  @Input()\n  public formData: FormDataType = {};\n\n  @Output()\n  public formDataChange = new EventEmitter<FormDataType>();\n\n  @Input()\n  public pageViewMode: 'single' | 'book' | 'multiple' | 'infinite-scroll' = 'multiple';\n\n  @Output()\n  public progress = new EventEmitter<ProgressBarEvent>();\n\n  @ViewChild('pdfSecondaryToolbarComponent')\n  private secondaryToolbarComponent: PdfSecondaryToolbarComponent;\n\n  @ViewChild('pdfsidebar')\n  private sidebarComponent: PdfSidebarComponent;\n\n  @Output()\n  public srcChange = new EventEmitter<string>();\n\n  @Input()\n  public scrollMode: ScrollModeType | undefined = undefined;\n\n  @Output()\n  public scrollModeChange = new EventEmitter<ScrollModeType>();\n\n  @Input()\n  public authorization: Object | undefined = undefined;\n\n  @Input()\n  public httpHeaders: Object | undefined = undefined;\n\n  @Input()\n  public contextMenuAllowed = true;\n\n  @Output()\n  public afterPrint = new EventEmitter<void>();\n\n  @Output()\n  public beforePrint = new EventEmitter<void>();\n\n  @Output()\n  public currentZoomFactor = new EventEmitter<number>();\n\n  @Input()\n  public enablePrint = true;\n\n  /**\n   * Number of milliseconds to wait between initializing the PDF viewer and loading the PDF file.\n   * Most users can let this parameter safely at it's default value of zero.\n   * Set this to 1000 or higher if you run into timing problems (typically caused by loading the locale files\n   * after the PDF files, so they are not available when the PDF viewer is initialized).\n   */\n  @Input()\n  public delayFirstView = 0;\n\n  /** store the timeout id so it can be canceled if user leaves the page before the PDF is shown */\n  private initTimeout: any;\n\n  /** How many log messages should be printed?\n   * Legal values: VerbosityLevel.INFOS (= 5), VerbosityLevel.WARNINGS (= 1), VerbosityLevel.ERRORS (= 0) */\n  @Input()\n  public logLevel = VerbosityLevel.WARNINGS;\n\n  @Input()\n  public enablePinchOnMobile = false;\n\n  /** Use the minified (minifiedJSLibraries=\"true\", which is the default) or the user-readable pdf.js library (minifiedJSLibraries=\"false\") */\n  @Input()\n  public minifiedJSLibraries = true;\n\n  public primaryMenuVisible = true;\n\n  /** option to increase (or reduce) print resolution. Default is 150 (dpi). Sensible values\n   * are 300, 600, and 1200. Note the increase memory consumption, which may even result in a browser crash. */\n  @Input()\n  public printResolution = null;\n\n  @Input()\n  public rotation: 0 | 90 | 180 | 270;\n\n  @Output()\n  public rotationChange = new EventEmitter<0 | 90 | 180 | 270>();\n\n  public hasSignature: boolean;\n\n  @Input()\n  public set src(url: string | ArrayBuffer | Blob | Uint8Array | { range: any }) {}\n\n  @Input()\n  public set base64Src(base64: string) {}\n\n  @Input()\n  public set height(h: string) {}\n\n  /**\n   * If this flag is true, this components adds a link to the locale assets. The pdf viewer\n   * sees this link and uses it to load the locale files automatically.\n   * @param useBrowserLocale boolean\n   */\n  @Input()\n  public useBrowserLocale = false;\n\n  @Input()\n  public backgroundColor = '#e8e8eb';\n\n  @Input()\n  public pdfBackground: PdfBackground = '#ffffff';\n\n  @Input()\n  public pdfBackgroundColorToReplace: string = '#ffffff';\n\n  /** Allows the user to define the name of the file after clicking \"download\" */\n  @Input()\n  public filenameForDownload = 'document.pdf';\n\n  /** Allows the user to disable the keyboard bindings completely */\n  @Input()\n  public ignoreKeyboard = false;\n\n  /** Allows the user to disable a list of key bindings. */\n  @Input()\n  public ignoreKeys: Array<string> = [];\n\n  /** Allows the user to enable a list of key bindings explicitly. If this property is set, every other key binding is ignored. */\n  @Input()\n  public acceptKeys: Array<string> = [];\n\n  /** Allows the user to put the viewer's svg images into an arbitrary folder */\n  @Input()\n  public imageResourcesPath = './' + pdfDefaultOptions.assetsFolder + '/images/';\n\n  /** Allows the user to put their locale folder into an arbitrary folder */\n  @Input()\n  public localeFolderPath = './' + pdfDefaultOptions.assetsFolder + '/locale';\n\n  /** Override the default locale. This must be the complete locale name, such as \"es-ES\". The string is allowed to be all lowercase.\n   */\n  @Input()\n  public language: string | undefined = undefined;\n\n  /** By default, listening to the URL is deactivated because often the anchor tag is used for the Angular router */\n  @Input()\n  public listenToURL = false;\n\n  /** Navigate to a certain \"named destination\" */\n  @Input()\n  public nameddest: string | undefined = undefined;\n\n  /** allows you to pass a password to read password-protected files */\n  @Input()\n  public password: string | undefined = undefined;\n\n  /** pdf.js can show signatures, but fails to verify them. So they are switched off by default.\n   * Set \"[showUnverifiedSignatures]\"=\"true\" to display e-signatures nonetheless.\n   */\n  @Input()\n  public showUnverifiedSignatures = false;\n\n  @Input()\n  public startTabindex: number | undefined;\n\n  public get showSidebarButton() {\n    return true;\n  }\n  @Input()\n  public set showSidebarButton(show: boolean) {}\n\n  @Input()\n  public sidebarVisible: boolean | undefined = undefined;\n\n  @Output()\n  public sidebarVisibleChange = new EventEmitter<boolean>();\n\n  @Input()\n  public showFindButton: boolean | undefined = undefined;\n\n  @Input()\n  public showFindHighlightAll = true;\n\n  @Input()\n  public showFindMatchCase = true;\n\n  @Input()\n  public showFindCurrentPageOnly = true;\n\n  @Input()\n  public showFindPageRange = true;\n\n  @Input()\n  public showFindEntireWord = true;\n\n  @Input()\n  public showFindEntirePhrase = true;\n\n  @Input()\n  public showFindIgnoreAccents = true;\n\n  @Input()\n  public showFindFuzzySearch = true;\n\n  @Input()\n  public showFindResultsCount = true;\n\n  @Input()\n  public showFindMessages = true;\n\n  @Input()\n  public showPagingButtons = true;\n  @Input()\n  public showZoomButtons = true;\n  @Input()\n  public showPresentationModeButton = false;\n  @Input()\n  public showOpenFileButton = true;\n  @Input()\n  public showPrintButton = true;\n  @Input()\n  public showDownloadButton = true;\n  @Input()\n  public showBookmarkButton = true;\n\n  @Input()\n  public theme: 'dark' | 'light' | 'custom' = 'light';\n\n  @Input()\n  public showToolbar = true;\n\n  @Input()\n  public showSecondaryToolbarButton = true;\n\n  /** Set by the event (secondaryMenuIsEmpty) */\n  public hideKebabMenuForSecondaryToolbar = false;\n\n  @Input()\n  public showRotateButton = true;\n  @Input()\n  public handTool = true;\n  @Output()\n  public handToolChange = new EventEmitter<boolean>();\n  @Input()\n  public showHandToolButton = false;\n  @Input()\n  public showScrollingButton = true;\n  @Input()\n  public showSpreadButton = true;\n  @Input()\n  public showPropertiesButton = true;\n  @Input()\n  public showBorders = true;\n\n  @Input()\n  public spread: 'off' | 'even' | 'odd';\n\n  @Output()\n  public spreadChange = new EventEmitter<'off' | 'even' | 'odd'>();\n\n  @Output()\n  public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n  private _page: number | undefined = undefined;\n\n  public get page(): number | undefined {\n    return this._page;\n  }\n\n  @Input()\n  public set page(p: number | undefined) {} // NOSONAR\n\n  @Output()\n  public pageChange = new EventEmitter<number | undefined>();\n\n  @Input()\n  public pageLabel: string | undefined = undefined;\n\n  @Output()\n  public pageLabelChange = new EventEmitter<string | undefined>();\n\n  @Output()\n  public pagesLoaded = new EventEmitter<PagesLoadedEvent>();\n\n  @Output()\n  public pageRendered = new EventEmitter<PageRenderedEvent>();\n\n  @Output()\n  public pdfDownloaded = new EventEmitter<PdfDownloadedEvent>();\n\n  @Output()\n  public pdfLoaded = new EventEmitter<PdfLoadedEvent>();\n\n  @Output()\n  public pdfLoadingFailed = new EventEmitter<Error>();\n\n  @Input()\n  public textLayer: boolean | undefined = undefined;\n\n  @Output()\n  public textLayerRendered = new EventEmitter<TextLayerRenderedEvent>();\n\n  @Output()\n  public updateFindMatchesCount = new EventEmitter<FindResultMatchesCount>();\n\n  @Output()\n  public updateFindState = new EventEmitter<FindState>();\n\n  /** Legal values: undefined, 'auto', 'page-actual', 'page-fit', 'page-width', or '50' (or any other percentage) */\n  @Input()\n  public zoom: string | number | undefined = undefined;\n\n  @Output()\n  public zoomChange = new EventEmitter<string | number | undefined>();\n\n  @Input()\n  public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 1, 1.25, 1.5, 2, 3, 4];\n\n  @Input()\n  public maxZoom = 10;\n\n  @Input()\n  public minZoom = 0.1;\n\n  /** This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n   * This attribute is a string with a percent character at the end (e.g. \"150%\").\n   */\n  @Input() _mobileFriendlyZoom = '100%';\n\n  public mobileFriendlyZoomScale = 1;\n\n  public toolbarMarginTop = '0px';\n\n  public toolbarWidth = '100%';\n\n  public toolbarWidthInPixels = 100;\n\n  public secondaryToolbarTop: string | undefined = undefined;\n\n  // dirty IE11 hack - temporary solution\n  public findbarTop: string | undefined = undefined;\n\n  // dirty IE11 hack - temporary solution\n  public findbarLeft: string | undefined = undefined;\n\n  // Additional PDF Form Field Types #567: Used to store the exported values of radio and checkbox buttons\n  public buttonValues: any = {};\n\n  public get mobileFriendlyZoom() {\n    return this._mobileFriendlyZoom;\n  }\n  /**\n   * This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n   * This attribute is a string with a percent character at the end (e.g. \"150%\").\n   */\n  @Input()\n  public set mobileFriendlyZoom(zoom: string) {} // NOSONAR\n\n  @Input()\n  public wheelAction: 'scroll' | 'zoom' = 'scroll';\n\n  public get sidebarPositionTop(): string {\n    return '32px';\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {}\n\n  ngOnInit() {}\n\n  ngAfterViewInit() {}\n\n  public ngOnDestroy(): void {}\n\n  @HostListener('contextmenu')\n  public onContextMenu(): boolean {\n    return this.contextMenuAllowed;\n  }\n}\n","<link *ngIf=\"useBrowserLocale\" rel=\"resource\" type=\"application/l10n\" [attr.xhref]=\"localeFolderPath+'/locale.properties'\" origin=\"ngx-extended-pdf-viewer\" />\n<pdf-dark-theme *ngIf=\"theme==='dark'\"></pdf-dark-theme>\n<pdf-light-theme *ngIf=\"theme==='light'\"></pdf-light-theme>\n\n<pdf-dynamic-css [zoom]=\"mobileFriendlyZoomScale\" [width]=\"toolbarWidthInPixels\"></pdf-dynamic-css>\n<div class=\"zoom\" [style.height]=\"height\">\n  <div class=\"html\">\n    <div id=\"mainContainer\">\n      <pdf-dummy-components></pdf-dummy-components>\n    </div>\n  </div>\n</div>\n\n<ng-template #defaultFreeFloatingBar>\n\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-document-properties-dialog',\n  templateUrl: './pdf-document-properties-dialog.component.html',\n})\nexport class PdfDocumentPropertiesDialogComponent {}\n","<dialog id=\"documentPropertiesDialog\">\n  <div class=\"row\">\n    <span id=\"fileNameLabel\" data-l10n-id=\"document_properties_file_name\">File name:</span>\n    <p id=\"fileNameField\" aria-labelledby=\"fileNameLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"fileSizeLabel\" data-l10n-id=\"document_properties_file_size\">File size:</span>\n    <p id=\"fileSizeField\" aria-labelledby=\"fileSizeLabel\">-</p>\n  </div>\n  <div class=\"separator\"></div>\n  <div class=\"row\">\n    <span id=\"titleLabel\" data-l10n-id=\"document_properties_title\">Title:</span>\n    <p id=\"titleField\" aria-labelledby=\"titleLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"authorLabel\" data-l10n-id=\"document_properties_author\">Author:</span>\n    <p id=\"authorField\" aria-labelledby=\"authorLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"subjectLabel\" data-l10n-id=\"document_properties_subject\">Subject:</span>\n    <p id=\"subjectField\" aria-labelledby=\"subjectLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"keywordsLabel\" data-l10n-id=\"document_properties_keywords\">Keywords:</span>\n    <p id=\"keywordsField\" aria-labelledby=\"keywordsLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"creationDateLabel\" data-l10n-id=\"document_properties_creation_date\">Creation Date:</span>\n    <p id=\"creationDateField\" aria-labelledby=\"creationDateLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"modificationDateLabel\" data-l10n-id=\"document_properties_modification_date\">Modification Date:</span>\n    <p id=\"modificationDateField\" aria-labelledby=\"modificationDateLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"creatorLabel\" data-l10n-id=\"document_properties_creator\">Creator:</span>\n    <p id=\"creatorField\" aria-labelledby=\"creatorLabel\">-</p>\n  </div>\n  <div class=\"separator\"></div>\n  <div class=\"row\">\n    <span id=\"producerLabel\" data-l10n-id=\"document_properties_producer\">PDF Producer:</span>\n    <p id=\"producerField\" aria-labelledby=\"producerLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"versionLabel\" data-l10n-id=\"document_properties_version\">PDF Version:</span>\n    <p id=\"versionField\" aria-labelledby=\"versionLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"pageCountLabel\" data-l10n-id=\"document_properties_page_count\">Page Count:</span>\n    <p id=\"pageCountField\" aria-labelledby=\"pageCountLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"pageSizeLabel\" data-l10n-id=\"document_properties_page_size\">Page Size:</span>\n    <p id=\"pageSizeField\" aria-labelledby=\"pageSizeLabel\">-</p>\n  </div>\n  <div class=\"separator\"></div>\n  <div class=\"row\">\n    <span id=\"linearizedLabel\" data-l10n-id=\"document_properties_linearized\">Fast Web View:</span>\n    <p id=\"linearizedField\" aria-labelledby=\"linearizedLabel\">-</p>\n  </div>\n  <div class=\"buttonRow\">\n    <button id=\"documentPropertiesClose\" class=\"dialogButton\"><span data-l10n-id=\"document_properties_close\">Close</span></button>\n  </div>\n</dialog>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-error-message',\n  templateUrl: './pdf-error-message.component.html',\n})\nexport class PdfErrorMessageComponent {}\n","<div id=\"errorWrapper\" hidden=\"true\">\n  <div id=\"errorMessageLeft\">\n    <span id=\"errorMessage\"></span>\n    <button type=\"button\" id=\"errorShowMore\" data-l10n-id=\"error_more_info\">More Information</button>\n    <button type=\"button\" id=\"errorShowLess\" data-l10n-id=\"error_less_info\" hidden=\"true\">Less Information</button>\n  </div>\n  <div id=\"errorMessageRight\">\n    <button type=\"button\" id=\"errorClose\" data-l10n-id=\"error_close\">Close</button>\n  </div>\n  <div class=\"clearBoth\"></div>\n  <textarea id=\"errorMoreInfo\" hidden=\"true\" readonly=\"readonly\"></textarea>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-password-dialog',\n  templateUrl: './pdf-password-dialog.component.html',\n})\nexport class PdfPasswordDialogComponent {}\n","<dialog id=\"passwordDialog\">\n  <div class=\"row\">\n    <label for=\"password\" id=\"passwordText\" data-l10n-id=\"password_label\">Enter the password to open this PDF file:</label>\n  </div>\n  <div class=\"row\">\n    <input type=\"password\" id=\"password\" class=\"toolbarField\" />\n  </div>\n  <div class=\"buttonRow\">\n    <button id=\"passwordCancel\" class=\"dialogButton\"><span data-l10n-id=\"password_cancel\">Cancel</span></button>\n    <button id=\"passwordSubmit\" class=\"dialogButton\"><span data-l10n-id=\"password_ok\">OK</span></button>\n  </div>\n</dialog>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-prepare-printing-dialog',\n  templateUrl: './pdf-prepare-printing-dialog.component.html',\n})\nexport class PdfPreparePrintingDialogComponent {}\n","<dialog id=\"printServiceDialog\" style=\"min-width: 200px\">\n  <div class=\"row\">\n    <span data-l10n-id=\"print_progress_message\">Preparing document for printing…</span>\n  </div>\n  <div class=\"row\">\n    <progress value=\"0\" max=\"100\"></progress>\n    <span data-l10n-id=\"print_progress_percent\" data-l10n-args='{ \"progress\": 0 }' class=\"relative-progress\">0%</span>\n  </div>\n  <div class=\"buttonRow\">\n    <button id=\"printCancel\" class=\"dialogButton\"><span data-l10n-id=\"print_progress_close\">Cancel</span></button>\n  </div>\n</dialog>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PDFNotificationService {\n  // this event is fired when the pdf.js library has been loaded and objects like PDFApplication are available\n  public onPDFJSInit = new Subject<void>();\n\n  public pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n}\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n} from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from './../../pdf-notification-service';\n\n@Component({\n  selector: 'pdf-secondary-toolbar',\n  templateUrl: './pdf-secondary-toolbar.component.html',\n  styleUrls: ['./pdf-secondary-toolbar.component.css'],\n})\nexport class PdfSecondaryToolbarComponent implements OnChanges, AfterViewInit, OnDestroy {\n  @Input()\n  public customSecondaryToolbar: TemplateRef<any> | undefined;\n\n  @Input()\n  public secondaryToolbarTop;\n\n  @Input()\n  public mobileFriendlyZoomScale: number;\n\n  @Input()\n  public showPresentationModeButton = true;\n\n  @Input()\n  public showOpenFileButton = true;\n\n  @Input()\n  public showPrintButton = true;\n\n  @Input()\n  public showDownloadButton = true;\n\n  @Input()\n  public showBookmarkButton = true;\n\n  @Input()\n  public showPagingButtons = true;\n\n  @Input()\n  public showRotateButton = true;\n\n  @Input()\n  public showHandToolButton = true;\n\n  @Input()\n  public showScrollingButton = true;\n\n  @Input()\n  public showSpreadButton = true;\n\n  @Input()\n  public showPropertiesButton = true;\n\n  @Output()\n  public spreadChange = new EventEmitter<'off' | 'even' | 'odd'>();\n\n  @Output()\n  public secondaryMenuIsEmpty = new EventEmitter<boolean>();\n\n  public disablePreviousPage = true;\n\n  public disableNextPage = true;\n\n  private mutationObserver: MutationObserver | undefined;\n\n  constructor(private element: ElementRef, public notificationService: PDFNotificationService) {\n    this.notificationService.onPDFJSInit.pipe(take(1)).subscribe(() => {\n      this.onPdfJsInit();\n    });\n  }\n\n  public onPdfJsInit(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.on('pagechanging', () => {\n      this.updateUIState();\n    });\n    PDFViewerApplication.eventBus.on('pagerendered', () => {\n      this.updateUIState();\n    });\n  }\n\n  public updateUIState(): void {\n    setTimeout(() => {\n      const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n      const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;\n      const previousButton = document.getElementById('previousPage') as HTMLButtonElement;\n      if (previousButton) {\n        this.disablePreviousPage = Number(currentPage) <= 1;\n        previousButton.disabled = this.disablePreviousPage;\n      }\n      const nextButton = document.getElementById('nextPage') as HTMLButtonElement;\n      if (nextButton) {\n        this.disableNextPage = currentPage === PDFViewerApplication.pagesCount;\n        nextButton.disabled = this.disableNextPage;\n      }\n    });\n  }\n\n  public onSpreadChange(newSpread: 'off' | 'odd' | 'even'): void {\n    this.spreadChange.emit(newSpread);\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    setTimeout(() => this.checkVisibility());\n  }\n\n  @HostListener('window:resize')\n  public onResize() {\n    setTimeout(() => this.checkVisibility());\n  }\n\n  public ngAfterViewInit() {\n    const targetNode = this.element.nativeElement as HTMLElement;\n\n    const config = { attributes: true, childList: true, subtree: true };\n\n    this.mutationObserver = new MutationObserver((mutationList: MutationRecord[], observer) => {\n      for (const mutation of mutationList) {\n        if (mutation.type === 'attributes') {\n          if (mutation.attributeName === 'class') {\n            this.checkVisibility();\n          }\n        }\n      }\n    });\n\n    this.mutationObserver.observe(targetNode, config);\n  }\n\n  public ngOnDestroy(): void {\n    if (this.mutationObserver) {\n      this.mutationObserver.disconnect;\n      this.mutationObserver = undefined;\n    }\n  }\n\n  public checkVisibility(): void {\n    let visibleButtons = 0;\n    const e = this.element.nativeElement as HTMLElement;\n    const f = e.children.item(0);\n    if (f) {\n      const g = f.children.item(0);\n      if (g && g instanceof HTMLElement) {\n        visibleButtons = this.checkVisibilityRecursively(g);\n      }\n    }\n    this.secondaryMenuIsEmpty.emit(visibleButtons === 0);\n  }\n\n  private checkVisibilityRecursively(e: HTMLElement): number {\n    if (typeof window === 'undefined') {\n      return 0;\n    }\n    if (e.style.display === 'none') {\n      return 0;\n    }\n    if (e.classList.contains('hidden')) {\n      return 0;\n    }\n    if (e.classList.contains('invisible')) {\n      return 0;\n    }\n\n    const style = window.getComputedStyle(e);\n    if (style.display === 'none') {\n      return 0;\n    }\n\n    if (e instanceof HTMLButtonElement || e instanceof HTMLAnchorElement) {\n      return 1;\n    }\n    let count = 0;\n    const children = e.children;\n    if (children && children.length) {\n      for (let i = 0; i < children.length && count === 0; i++) {\n        const child = children.item(i);\n        if (child && child instanceof HTMLElement) {\n          count += this.checkVisibilityRecursively(child);\n        }\n      }\n    }\n    return count;\n  }\n\n  public previousPage(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('previouspage');\n  }\n\n  public nextPage(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('nextpage');\n  }\n}\n","<ng-container [ngTemplateOutlet]=\"customSecondaryToolbar ? customSecondaryToolbar : defaultSecondaryToolbar\"> </ng-container>\n\n<ng-template #defaultSecondaryToolbar>\n  <div\n    id=\"secondaryToolbar\"\n    class=\"secondaryToolbar hidden doorHangerRight\"\n    [style.top]=\"secondaryToolbarTop\"\n    [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n    [style.transformOrigin]=\"'right top'\"\n  >\n    <div id=\"secondaryToolbarButtonContainer\">\n      <button\n        type=\"button\"\n        id=\"secondaryPresentationMode\"\n        [class.invisible]=\"!showPresentationModeButton\"\n        class=\"secondaryToolbarButton visibleLargeView\"\n        title=\"Switch to Presentation Mode\"\n        data-l10n-id=\"presentation_mode\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z\" />\n        </svg>\n        <span data-l10n-id=\"presentation_mode_label\">Presentation Mode</span>\n      </button>\n\n      <button\n        type=\"button\"\n        id=\"secondaryOpenFile\"\n        [class.invisible]=\"!showOpenFileButton\"\n        class=\"secondaryToolbarButton visibleMediumView\"\n        title=\"Open File\"\n        data-l10n-id=\"open_file\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,12L16,16H13.5V19H10.5V16H8L12,12Z\" />\n        </svg>\n        <span data-l10n-id=\"open_file_label\">Open</span>\n      </button>\n\n      <button\n        type=\"button\"\n        id=\"secondaryPrint\"\n        class=\"secondaryToolbarButton visibleSmallView\"\n        [class.invisible]=\"!showPrintButton\"\n        title=\"Print\"\n        data-l10n-id=\"print\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z\" />\n        </svg>\n        <span data-l10n-id=\"print_label\">Print</span>\n      </button>\n\n      <button\n        type=\"button\"\n        id=\"secondaryDownload\"\n        class=\"secondaryToolbarButton visibleSmallView\"\n        [class.invisible]=\"!showDownloadButton\"\n        title=\"Download\"\n        data-l10n-id=\"download\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z\" />\n        </svg>\n        <span data-l10n-id=\"download_label\">Download</span>\n      </button>\n\n      <a\n        href=\"#\"\n        id=\"secondaryViewBookmark\"\n        class=\"secondaryToolbarButton bookmark visibleTinyView\"\n        [class.invisible]=\"!showBookmarkButton\"\n        title=\"Current view (copy or open in new window)\"\n        data-l10n-id=\"bookmark\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M17,18L12,15.82L7,18V5H17M17,3H7A2,2 0 0,0 5,5V21L12,18L19,21V5C19,3.89 18.1,3 17,3Z\" />\n        </svg>\n        <span data-l10n-id=\"bookmark_label\">Current View</span>\n      </a>\n\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showPagingButtons\"\n        id=\"firstPage\"\n        class=\"secondaryToolbarButton firstPage visibleLargeView\"\n        title=\"Go to First Page\"\n        data-l10n-id=\"first_page\"\n      >\n        <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z\" />\n        </svg>\n        <span data-l10n-id=\"first_page_label\">Go to First Page</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showPagingButtons\"\n        id=\"previousPage\"\n        class=\"secondaryToolbarButton previousPage visibleTinyView\"\n        title=\"Go to Previous Page\"\n        data-l10n-id=\"previous\"\n        [disabled]=\"disablePreviousPage\"\n        (click)=\"previousPage()\"\n      >\n        <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n        </svg>\n        <span data-l10n-id=\"previous_label\">Go to Previous Page</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showPagingButtons\"\n        [disabled]=\"disableNextPage\"\n        id=\"nextPage\"\n        class=\"secondaryToolbarButton nextPage visibleTinyView\"\n        title=\"Go to Next Page\"\n        data-l10n-id=\"next\"\n        (click)=\"nextPage()\"\n      >\n        <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n        </svg>\n        <span data-l10n-id=\"next_label\">Go to Next Page</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showPagingButtons\"\n        id=\"lastPage\"\n        class=\"secondaryToolbarButton lastPage visibleLargeView\"\n        title=\"Go to Last Page\"\n        data-l10n-id=\"last_page\"\n      >\n        <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z\" />\n        </svg>\n        <span data-l10n-id=\"last_page_label\">Go to Last Page</span>\n      </button>\n\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showRotateButton\"\n        id=\"pageRotateCw\"\n        class=\"secondaryToolbarButton rotateCw visibleXLView\"\n        title=\"Rotate Clockwise\"\n        data-l10n-id=\"page_rotate_cw\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C14 21 15.92 20.34 17.5 19.14L16.06 17.7C14.87 18.54 13.45 19 12 19C8.13 19 5 15.87 5 12S8.13 5 12 5 19 8.13 19 12H16L20 16L24 12H21C21 7.03 16.97 3 12 3\" />\n        </svg>\n        <span data-l10n-id=\"page_rotate_cw_label\">Rotate Clockwise</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showRotateButton\"\n        id=\"pageRotateCcw\"\n        class=\"secondaryToolbarButton rotateCcw visibleXLView\"\n        title=\"Rotate Counterclockwise\"\n        data-l10n-id=\"page_rotate_ccw\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M12 3C7.03 3 3 7.03 3 12H0L4 16L8 12H5C5 8.13 8.13 5 12 5S19 8.13 19 12 15.87 19 12 19C10.55 19 9.13 18.54 7.94 17.7L6.5 19.14C8.08 20.34 10 21 12 21C16.97 21 21 16.97 21 12S16.97 3 12 3\" />\n        </svg>\n        <span data-l10n-id=\"page_rotate_ccw_label\">Rotate Counterclockwise</span>\n      </button>\n\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showHandToolButton\"\n        id=\"cursorSelectTool\"\n        class=\"secondaryToolbarButton toggled visibleXXLView\"\n        title=\"Enable Text Selection Tool\"\n        data-l10n-id=\"cursor_text_select_tool\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z\" />\n        </svg>\n        <span data-l10n-id=\"cursor_text_select_tool_label\">Text Selection Tool</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showHandToolButton\"\n        id=\"cursorHandTool\"\n        class=\"secondaryToolbarButton visibleXXLView\"\n        title=\"Enable Hand Tool\"\n        data-l10n-id=\"cursor_hand_tool\"\n      >\n        <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n          <path fill=\"currentColor\" d=\"M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z\" />\n        </svg>\n        <span data-l10n-id=\"cursor_hand_tool_label\">Hand Tool</span>\n      </button>\n\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showScrollingButton\"\n        id=\"scrollPage\"\n        class=\"secondaryToolbarButton scrollPage\"\n        title=\"Use Page Scrolling\"\n        data-l10n-id=\"scroll_page\"\n      >\n      <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n        <path fill=\"currentColor\" d=\"M9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM11 0v.5c0 1-.5 1.5-1.5 1.5h-3C5.5 2 5 1.5 5 .5V0h6zM11 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6z\"/>\n      </svg>\n      <span data-l10n-id=\"scroll_page\">Page Scrolling</span>\n    </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showScrollingButton\"\n        id=\"scrollVertical\"\n        class=\"secondaryToolbarButton scrollVertical toggled\"\n        title=\"Use Vertical Scrolling\"\n        data-l10n-id=\"scroll_vertical\"\n      >\n        <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n          <path fill=\"currentColor\" d=\"M9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM11 0v.5c0 1-.5 1.5-1.5 1.5h-3C5.5 2 5 1.5 5 .5V0h6zM11 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6z\"/>\n        </svg>\n        <span data-l10n-id=\"scroll_vertical_label\">Vertical Scrolling</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showScrollingButton\"\n        id=\"scrollHorizontal\"\n        class=\"secondaryToolbarButton scrollHorizontal\"\n        title=\"Use Horizontal Scrolling\"\n        data-l10n-id=\"scroll_horizontal\"\n      >\n        <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n          <path fill=\"currentColor\" d=\"M0 4h1.5c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5H0zM9.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C5 4.5 5.5 4 6.5 4zM16 4h-1.5c-1 0-1.5.5-1.5 1.5v5c0 1 .5 1.5 1.5 1.5H16z\"/>\n        </svg>\n        <span data-l10n-id=\"scroll_horizontal_label\">Horizontal Scrolling</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showScrollingButton\"\n        id=\"scrollWrapped\"\n        class=\"secondaryToolbarButton scrollWrapped\"\n        title=\"Use Wrapped Scrolling\"\n        data-l10n-id=\"scroll_wrapped\"\n      >\n        <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n          <path fill=\"currentColor\" d=\"M5.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5C1 4.5 1.5 4 2.5 4zM7 0v.5C7 1.5 6.5 2 5.5 2h-3C1.5 2 1 1.5 1 .5V0h6zM7 16v-.5c0-1-.5-1.5-1.5-1.5h-3c-1 0-1.5.5-1.5 1.5v.5h6zM13.5 4c1 0 1.5.5 1.5 1.5v5c0 1-.5 1.5-1.5 1.5h-3c-1 0-1.5-.5-1.5-1.5v-5c0-1 .5-1.5 1.5-1.5zM15 0v.5c0 1-.5 1.5-1.5 1.5h-3C9.5 2 9 1.5 9 .5V0h6zM15 16v-.507c0-1-.5-1.5-1.5-1.5h-3C9.5 14 9 14.5 9 15.5v.5h6z\"/>\n        </svg>\n        <span data-l10n-id=\"scroll_wrapped_label\">Wrapped Scrolling</span>\n      </button>\n\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showSpreadButton\"\n        id=\"spreadNone\"\n        class=\"secondaryToolbarButton spreadNone toggled\"\n        title=\"Do not join page spreads\"\n        data-l10n-id=\"spread_none\"\n        (click)=\"onSpreadChange('off')\"\n      >\n        <svg height=\"16\" width=\"16\">\n          <path fill=\"currentColor\" d=\"M6 3c-1 0-1.5.5-1.5 1.5v7c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5v-7c0-1-.5-1.5-1.5-1.5z\"/>\n        </svg>\n        <span data-l10n-id=\"spread_none_label\">No Spreads</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showSpreadButton\"\n        id=\"spreadOdd\"\n        class=\"secondaryToolbarButton spreadOdd\"\n        title=\"Join page spreads starting with odd-numbered pages\"\n        data-l10n-id=\"spread_odd\"\n        (click)=\"onSpreadChange('odd')\"\n      >\n        <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n          <path fill=\"currentColor\" d=\"M10.56 3.5C9.56 3.5 9 4 9 5v6.5c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm1.93 1.2c.8 0 1.4.2 1.8.64.5.4.7 1 .7 1.7 0 .5-.2 1-.5 1.44-.2.3-.6.6-1 .93l-.6.4c-.4.3-.6.4-.7.55-.1.1-.2.2-.3.4h3.2v1.27h-5c0-.5.1-1 .3-1.43.2-.49.7-1 1.5-1.54.7-.5 1.1-.8 1.3-1.02.3-.3.4-.7.4-1.05 0-.3-.1-.6-.3-.77-.2-.2-.4-.3-.7-.3-.4 0-.7.2-.9.5-.1.2-.1.5-.2.9h-1.4c0-.6.2-1.1.3-1.5.4-.7 1.1-1.1 2-1.1zM1.54 3.5C.54 3.5 0 4 0 5v6.5c0 1 .5 1.5 1.54 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm1.8 1.125H4.5V12H3V6.9H1.3v-1c.5 0 .8 0 .97-.03.33-.07.53-.17.73-.37.1-.2.2-.3.25-.5.05-.2.05-.3.05-.3z\"/>\n        </svg>\n        <span data-l10n-id=\"spread_odd_label\">Odd Spreads</span>\n      </button>\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showSpreadButton\"\n        id=\"spreadEven\"\n        class=\"secondaryToolbarButton spreadEven\"\n        title=\"Join page spreads starting with even-numbered pages\"\n        data-l10n-id=\"spread_even\"\n        (click)=\"onSpreadChange('even')\"\n      >\n        <svg style=\"width: 24px; height: 24px; margin-top: 3px\">\n          <path fill=\"currentColor\" d=\"M1.5 3.5C.5 3.5 0 4 0 5v6.5c0 1 .5 1.5 1.5 1.5h4c1 0 1.5-.5 1.5-1.5V5c0-1-.5-1.5-1.5-1.5zm2 1.2c.8 0 1.4.2 1.8.6.5.4.7 1 .7 1.7 0 .5-.2 1-.5 1.4-.2.3-.5.7-1 1l-.6.4c-.4.3-.6.4-.75.56-.15.14-.25.24-.35.44H6v1.3H1c0-.6.1-1.1.3-1.5.3-.6.7-1 1.5-1.6.7-.4 1.1-.8 1.28-1 .32-.3.42-.6.42-1 0-.3-.1-.6-.23-.8-.17-.2-.37-.3-.77-.3s-.7.1-.9.5c-.04.2-.1.5-.1.9H1.1c0-.6.1-1.1.3-1.5.4-.7 1.1-1.1 2.1-1.1zM10.54 3.54C9.5 3.54 9 4 9 5v6.5c0 1 .5 1.5 1.54 1.5h4c.96 0 1.46-.5 1.46-1.5V5c0-1-.5-1.46-1.5-1.46zm1.9.95c.7 0 1.3.2 1.7.5.4.4.6.8.6 1.4 0 .4-.1.8-.4 1.1-.2.2-.3.3-.5.4.1 0 .3.1.6.3.4.3.5.8.5 1.4 0 .6-.2 1.2-.6 1.6-.4.5-1.1.7-1.9.7-1 0-1.8-.3-2.2-1-.14-.29-.24-.69-.24-1.29h1.4c0 .3 0 .5.1.7.2.4.5.5 1 .5.3 0 .5-.1.7-.3.2-.2.3-.5.3-.8 0-.5-.2-.8-.6-.95-.2-.05-.5-.15-1-.15v-1c.5 0 .8-.1 1-.14.3-.1.5-.4.5-.9 0-.3-.1-.5-.2-.7-.2-.2-.4-.3-.7-.3-.3 0-.6.1-.75.3-.2.2-.2.5-.2.86h-1.34c0-.4.1-.7.19-1.1 0-.12.2-.32.4-.62.2-.2.4-.3.7-.4.3-.1.6-.1 1-.1z\"/>\n        </svg>\n        <span data-l10n-id=\"spread_even_label\">Even Spreads</span>\n      </button>\n\n      <button\n        type=\"button\"\n        [class.invisible]=\"!showPropertiesButton\"\n        id=\"documentProperties\"\n        class=\"secondaryToolbarButton documentProperties\"\n        title=\"Document Properties…\"\n        data-l10n-id=\"document_properties\"\n        aria-controls=\"documentPropertiesDialog\"\n      >\n        <svg style=\"width: 16px; height: 16px; margin-top: 3px\" viewBox=\"0 0 16 16\">\n          <path fill=\"currentColor\" d=\"M8 16a8 8 0 1 1 8-8 8.009 8.009 0 0 1-8 8zM8 2a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6z\"/>\n          <path fill=\"currentColor\" d=\"M8 7a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0V8a1 1 0 0 0-1-1z\"/>\n          <circle fill=\"currentColor\" cx=\"8\" cy=\"5\" r=\"1.188\"/>\n        </svg>\n        <span data-l10n-id=\"document_properties_label\">Document Properties…</span>\n      </button>\n    </div>\n  </div>\n</ng-template>\n","import { Component, Input, TemplateRef, ViewChild, ElementRef, OnDestroy, EventEmitter, Output } from '@angular/core';\nimport { PdfThumbnailDrawnEvent } from '../../../events/pdf-thumbnail-drawn-event';\n\ndeclare class PDFThumbnailView {\n  anchor: HTMLAnchorElement;\n  div: HTMLElement;\n  ring: HTMLElement;\n  canvasWidth: number;\n  canvasHeight: number;\n}\n\ndeclare class PDFLinkService {\n  public page: number;\n  public pagesCount: number;\n  public getAnchorUrl(targetUrl: string): string;\n}\n\nconst THUMBNAIL_CANVAS_BORDER_WIDTH = 1; // one pixel\n\n@Component({\n  selector: 'pdf-sidebar-content',\n  templateUrl: './pdf-sidebar-content.component.html',\n  styleUrls: ['./pdf-sidebar-content.component.css'],\n})\nexport class PdfSidebarContentComponent implements OnDestroy {\n  @Input()\n  public customThumbnail: TemplateRef<any> | undefined;\n\n  @Input()\n  public hideSidebarToolbar = false;\n\n  @Input()\n  public mobileFriendlyZoomScale = 1.0;\n\n  @ViewChild('thumbnailViewTemplate')\n  public thumbnailViewTemplate: ElementRef;\n\n  private linkService: PDFLinkService | undefined;\n\n  @Output()\n  public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n  public get top(): string {\n    let top = 0;\n    if (!this.hideSidebarToolbar) {\n      top = 32 * this.mobileFriendlyZoomScale;\n      if (top === 32) {\n        top = 33; // prevent the border of the sidebar toolbar from being cut off\n      }\n    }\n    return `${top}px`;\n  }\n\n  constructor() {\n    if (typeof window !== 'undefined') {\n      (window as any).pdfThumbnailGeneratorReady = () => this.pdfThumbnailGeneratorReady();\n      (window as any).pdfThumbnailGenerator = (\n        pdfThumbnailView: PDFThumbnailView,\n        linkService: any,\n        id: number,\n        container: HTMLDivElement,\n        thumbPageTitlePromise: Promise<string>\n      ) => this.createThumbnail(pdfThumbnailView, linkService, id, container, thumbPageTitlePromise);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.linkService = undefined;\n  }\n\n  public pdfThumbnailGeneratorReady(): boolean {\n    if (!this.thumbnailViewTemplate) {\n      return false;\n    }\n    const t = this.thumbnailViewTemplate.nativeElement as HTMLElement;\n    return !!t && !!t.innerHTML && t.innerHTML.length > 0;\n  }\n\n  private createThumbnail(\n    pdfThumbnailView: PDFThumbnailView,\n    linkService: PDFLinkService,\n    id: number,\n    container: HTMLDivElement,\n    thumbPageTitlePromise: Promise<string>\n  ) {\n    this.linkService = linkService;\n    const template = this.thumbnailViewTemplate;\n    // get the inner HTML without the attributes and classes added by Angular\n    const inner = template.nativeElement.innerHTML\n      .split(/_ng\\w+-\\w+-\\w+=\"\"/g)\n      .join('')\n      .split(/ng-\\w+-\\w+/g)\n      .join('')\n      .split(/<!--[\\s\\S]*?-->/g)\n      .join('');\n\n    const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH;\n\n    const widthOfRing = `${pdfThumbnailView.canvasWidth + borderAdjustment}px`;\n    const heightOfRing = `${pdfThumbnailView.canvasHeight + borderAdjustment}px`;\n\n    const newHtml = inner.split('WIDTH_OF_RING').join(widthOfRing).split('HEIGHT_OF_RING').join(heightOfRing).split('PAGE_NUMBER').join(id);\n    const newElement = this.createElementFromHTML(newHtml);\n    newElement.classList.remove('pdf-viewer-template');\n\n    const anchor = newElement as HTMLAnchorElement;\n    anchor.href = linkService.getAnchorUrl(`#page=${id}`);\n    thumbPageTitlePromise.then((msg) => {\n      anchor.title = msg;\n    });\n    anchor.onclick = () => {\n      linkService.page = id;\n      return false;\n    };\n    pdfThumbnailView.anchor = anchor;\n\n    const ring = newElement.getElementsByClassName('image-container')[0] as HTMLElement;\n    pdfThumbnailView.ring = ring;\n    pdfThumbnailView.div = newElement.getElementsByClassName('thumbnail')[0] as HTMLElement;\n\n    container.appendChild(newElement);\n\n    const thumbnailDrawnEvent: PdfThumbnailDrawnEvent = {\n      thumbnail: newElement,\n      container: container,\n      pageId: id,\n    };\n    this.thumbnailDrawn.emit(thumbnailDrawnEvent);\n  }\n\n  private createElementFromHTML(htmlString): HTMLElement {\n    const div = document.createElement('div');\n    div.innerHTML = htmlString.trim();\n\n    // Change this to div.childNodes to support multiple top-level nodes\n    return div.firstChild as HTMLElement;\n  }\n\n  public onKeyDown(event: KeyboardEvent): void {\n    if (event.code === 'ArrowDown') {\n      if (this.linkService) {\n        if (event.ctrlKey || event.metaKey) {\n          this.linkService.page = this.linkService.pagesCount;\n        } else if (this.linkService.page < this.linkService.pagesCount) {\n          this.linkService.page = this.linkService.page + 1;\n        }\n        event.preventDefault();\n      }\n    } else if (event.code === 'ArrowUp') {\n      if (this.linkService) {\n        if (event.ctrlKey || event.metaKey) {\n          this.linkService.page = 1;\n        } else if (this.linkService.page > 1) {\n          this.linkService.page = this.linkService.page - 1;\n        }\n        event.preventDefault();\n      }\n    }\n  }\n}\n","<div id=\"sidebarContent\" [style.top]=\"top\">\n  <div #thumbnailViewTemplate>\n    <ng-content *ngTemplateOutlet=\"customThumbnail ? customThumbnail : defaultThumbnail\"></ng-content>\n  </div>\n  <div id=\"thumbnailView\" (keydown)=\"onKeyDown($event)\"></div>\n  <div id=\"outlineView\" class=\"hidden\"></div>\n  <div id=\"attachmentsView\" class=\"hidden\"></div>\n  <div id=\"layersView\" class=\"hidden\"></div>\n</div>\n\n<ng-template #defaultThumbnail>\n  <a class=\"pdf-viewer-template\">\n    <div class=\"thumbnail\" data-page-number=\"$page\">\n      <div class=\"thumbnailSelectionRing image-container\" style=\"width: WIDTH_OF_RING; height: HEIGHT_OF_RING\">\n        <!-- image is automatically inserted here -->\n        <!-- <img class=\"thumbnailImage\" style=\"width: 98px; height: 73px;\" /> -->\n      </div>\n    </div>\n  </a>\n</ng-template>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-sidebar-toolbar',\n  templateUrl: './pdf-sidebar-toolbar.component.html',\n  styleUrls: ['./pdf-sidebar-toolbar.component.css']\n})\nexport class PdfSidebarToolbarComponent {\n\n  @Input()\n  public mobileFriendlyZoomScale = 1;\n\n  public get height(): string {\n    const h = 32 * this.mobileFriendlyZoomScale;\n    return `${h}px`;\n  }\n}\n","<div id=\"toolbarSidebar\" [style.height]=\"height\">\n  <div id=\"toolbarSidebarLeft\">\n    <button\n      type=\"button\"\n      id=\"viewThumbnail\"\n      class=\"toolbarButton toggled\"\n      title=\"Show Thumbnails\"\n      data-l10n-id=\"thumbs\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n    >\n      <span data-l10n-id=\"thumbs_label\">Thumbnails</span>\n      <svg style=\"width: 20px; height: 20px\" viewBox=\"0 0 24 24\">\n        <path\n          fill=\"currentColor\"\n          d=\"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M13.96,12.29L11.21,15.83L9.25,13.47L6.5,17H17.5L13.96,12.29Z\"\n        />\n      </svg>\n    </button>\n\n    <button\n      type=\"button\"\n      id=\"viewOutline\"\n      class=\"toolbarButton\"\n      title=\"Show Document Outline (double-click to expand/collapse all items)\"\n      data-l10n-id=\"document_outline\"\n      hidden=\"true\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n    >\n      <span data-l10n-id=\"document_outline_label\">Document Outline</span>\n      <svg style=\"width: 20px; height: 20px\" viewBox=\"0 0 24 24\">\n        <path fill=\"currentColor\" d=\"M3,9H17V7H3V9M3,13H17V11H3V13M3,17H17V15H3V17M19,17H21V15H19V17M19,7V9H21V7H19M19,13H21V11H19V13Z\" />\n      </svg>\n    </button>\n\n    <button\n      type=\"button\"\n      id=\"viewAttachments\"\n      class=\"toolbarButton\"\n      title=\"Show Attachments\"\n      data-l10n-id=\"attachments\"\n      hidden=\"true\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n    >\n      <span data-l10n-id=\"attachments_label\">Attachments</span>\n      <svg style=\"width: 20px; height: 20px\" viewBox=\"0 0 24 24\">\n        <path\n          fill=\"currentColor\"\n          d=\"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z\"\n        />\n      </svg>\n    </button>\n    <button\n      id=\"viewLayers\"\n      class=\"toolbarButton\"\n      title=\"Show Layers (double-click to reset all layers to the default state)\"\n      data-l10n-id=\"layers\"\n      hidden=\"true\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n    >\n      <span data-l10n-id=\"layers_label\">Layers</span>\n      <svg style=\"width: 20px; height: 20px;margin-left:1px\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 4.233 4.233\">\n        <path\n          d=\"M.15 2.992c-.198.1-.2.266-.002.365l1.604.802a.93.93 0 00.729-.001l1.602-.801c.198-.1.197-.264 0-.364l-.695-.348c-1.306.595-2.542 0-2.542 0m-.264.53l.658-.329c.6.252 1.238.244 1.754 0l.659.329-1.536.768zM.15 1.935c-.198.1-.198.265 0 .364l1.604.802a.926.926 0 00.727 0l1.603-.802c.198-.099.198-.264 0-.363l-.694-.35c-1.14.56-2.546.001-2.546.001m-.264.53l.664-.332c.52.266 1.261.235 1.75.002l.659.33-1.537.768zM.15.877c-.198.099-.198.264 0 .363l1.604.802a.926.926 0 00.727 0l1.603-.802c.198-.099.198-.264 0-.363L2.481.075a.926.926 0 00-.727 0zm.43.182L2.117.29l1.538.769-1.538.768z\"\n        />\n      </svg>\n    </button>\n  </div>\n\n  <div id=\"toolbarSidebarRight\">\n    <div id=\"outlineOptionsContainer\" class=\"hidden\">\n      <div class=\"verticalToolbarSeparator\"></div>\n\n      <button\n        id=\"currentOutlineItem\"\n        class=\"toolbarButton\"\n        disabled=\"disabled\"\n        title=\"Find Current Outline Item\"\n        tabindex=\"6\"\n        data-l10n-id=\"current_outline_item\"\n        [style.zoom]=\"mobileFriendlyZoomScale\"\n        >\n        <span data-l10n-id=\"current_outline_item_label\">Current Outline Item</span>\n        <svg style=\"width: 20px; height: 20px\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\">\n          <path\n            d=\"m14 9h-6c-1.3 0-1.3 2 0 2h6c1.3 0 1.3-2 0-2zm-5.2-8h-3.8c-1.3 0-1.3 2 0 2h1.7zm-6.8 0c-1 0-1.3 1-0.7 1.7 0.7 0.6 1.7 0.3 1.7-0.7 0-0.5-0.4-1-1-1zm3 8c-1 0-1.3 1-0.7 1.7 0.6 0.6 1.7 0.2 1.7-0.7 0-0.5-0.4-1-1-1zm0.3-4h-0.3c-1.4 0-1.4 2 0 2h2.3zm-3.3 0c-0.9 0-1.4 1-0.7 1.7 0.7 0.6 1.7 0.2 1.7-0.7 0-0.6-0.5-1-1-1zm12 8h-9c-1.3 0-1.3 2 0 2h9c1.3 0 1.3-2 0-2zm-12 0c-1 0-1.3 1-0.7 1.7 0.7 0.6 1.7 0.2 1.7-0.712 0-0.5-0.4-1-1-1z\"\n          />\n          <path d=\"m7.37 4.838 3.93-3.911v2.138h3.629v3.546h-3.629v2.138l-3.93-3.911\" />\n        </svg>\n      </button>\n    </div>\n  </div>\n</div>\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PdfThumbnailDrawnEvent } from '../../events/pdf-thumbnail-drawn-event';\n\n@Component({\n  selector: 'pdf-sidebar',\n  templateUrl: './pdf-sidebar.component.html',\n  styleUrls: ['./pdf-sidebar.component.css'],\n})\nexport class PdfSidebarComponent {\n  @Input()\n  public sidebarPositionTop: string | undefined;\n\n  @Input()\n  public sidebarVisible = true;\n\n  @Input()\n  public mobileFriendlyZoomScale = 1;\n\n  @Input()\n  public showSidebarButton = true;\n\n  @Input()\n  public customSidebar: TemplateRef<any> | undefined;\n\n  @Input()\n  public customThumbnail: TemplateRef<any> | undefined;\n\n  @Output()\n  public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n  public hideSidebarToolbar = true;\n\n  constructor(private elementRef: ElementRef, private ref: ChangeDetectorRef) {}\n\n  public showToolbarWhenNecessary(): void {\n    const element = this.elementRef.nativeElement as HTMLElement;\n    const buttons = element.querySelectorAll('button');\n    let visible = 0;\n    for (let index = 0; index < buttons.length; index++) {\n      const b = buttons.item(index);\n      if (!b.hidden) {\n        visible++;\n      }\n    }\n    this.hideSidebarToolbar = visible <= 1;\n    this.ref.markForCheck();\n  }\n}\n","<div>\n  <ng-content *ngTemplateOutlet=\"customSidebar ? customSidebar : defaultSidebar\"></ng-content>\n</div>\n\n<ng-template #defaultSidebar>\n  <div id=\"sidebarContainer\" [style.top]=\"sidebarPositionTop\">\n    <div id=\"additionalSidebarContainer\" [style.display]=\"hideSidebarToolbar ? 'none' : ''\">\n      <pdf-sidebar-toolbar [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"></pdf-sidebar-toolbar>\n    </div>\n    <pdf-sidebar-content\n      [customThumbnail]=\"customThumbnail\"\n      (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n      [hideSidebarToolbar]=\"hideSidebarToolbar\"\n      [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n    ></pdf-sidebar-content>\n    <div id=\"sidebarResizer\" class=\"hidden\"></div>\n  </div>\n</ng-template>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-acroform-dark-theme',\n  template: '',\n  styleUrls: [\n    './pdf-acroform-dark-colors.scss',\n    '../common/annotation-layer-builder.scss',\n    '../common/xfa_layer_builder.scss',\n    '../common/annotation_editor_layer_builder.css',\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfAcroformDarkThemeComponent {}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-acroform-default-theme',\n  template: '',\n  styleUrls: [\n    './pdf-acroform-default-colors.scss',\n    '../common/annotation-layer-builder.scss',\n    '../common/xfa_layer_builder.scss',\n    '../common/annotation_editor_layer_builder.css',\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfAcroformDefaultThemeComponent {}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-original-theme',\n  templateUrl: './pdf-original.component.html',\n  styleUrls: ['./viewer-with-images.css', './ngx-extended-pdf-viewer.component.css'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfOriginalComponent {}\n","","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-bookmark',\n  templateUrl: './pdf-bookmark.component.html',\n  styleUrls: ['./pdf-bookmark.component.css']\n})\nexport class PdfBookmarkComponent {\n\n  @Input()\n  public showBookmarkButton = true;\n}\n","<a\n  href=\"#\"\n  [class.invisible]=\"!showBookmarkButton\"\n  id=\"viewBookmark\"\n  class=\"toolbarButton hiddenTinyView\"\n  title=\"Current view (copy or open in new window)\"\n  data-l10n-id=\"bookmark\"\n>\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M17,18L12,15.82L7,18V5H17M17,3H7A2,2 0 0,0 5,5V21L12,18L19,21V5C19,3.89 18.1,3 17,3Z\" />\n  </svg>\n  <span data-l10n-id=\"bookmark_label\">Current View</span>\n</a>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-context-menu',\n  templateUrl: './pdf-context-menu.component.html',\n  styleUrls: ['./pdf-context-menu.component.css'],\n})\nexport class PdfContextMenuComponent {}\n","<!-- the context menu is deactivated because only Firefox supports it -->\n<div style=\"display:none\" type=\"context\" id=\"viewerContextMenu\">\n  <div style=\"display:none\" id=\"contextFirstPage\"></div>\n  <div style=\"display:none\" id=\"contextLastPage\"></div>\n  <div style=\"display:none\" id=\"contextPageRotateCw\"></div>\n  <div style=\"display:none\" id=\"contextPageRotateCcw\"></div>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-download',\n  templateUrl: './pdf-download.component.html',\n  styleUrls: ['./pdf-download.component.css'],\n})\nexport class PdfDownloadComponent {\n  @Input()\n  public showDownloadButton = true;\n}\n","<button\n  type=\"button\"\n  id=\"download\"\n  class=\"toolbarButton hiddenSmallView\"\n  [class.invisible]=\"!showDownloadButton\"\n  title=\"Download\"\n  data-l10n-id=\"download\"\n>\n  <svg style=\"width:20px;height:20px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z\" />\n  </svg>\n  <span data-l10n-id=\"download_label\">Download</span>\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-button',\n  templateUrl: './pdf-find-button.component.html',\n  styleUrls: ['./pdf-find-button.component.css'],\n})\nexport class PdfFindButtonComponent {\n  @Input()\n  public showFindButton: boolean | undefined = undefined;\n\n  @Input()\n  public textLayer: boolean | undefined = undefined;\n}\n","<button\n  type=\"button\"\n  [class.invisible]=\"!showFindButton || !textLayer\"\n  id=\"viewFind\"\n  class=\"toolbarButton\"\n  title=\"Find in Document\"\n  data-l10n-id=\"findbar\"\n>\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" />\n  </svg>\n  <span data-l10n-id=\"findbar_label\">Find</span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-current-page-only',\n  templateUrl: './pdf-find-current-page-only.component.html',\n  styleUrls: ['./pdf-find-current-page-only.component.css'],\n})\nexport class PdfFindCurrentPageOnlyComponent {}\n","<input\n  type=\"checkbox\"\n  id=\"findCurrentPage\"\n  class=\"toolbarField\"\n/>\n<label\n  for=\"findCurrentPage\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_current_page\">\n  Current page only\n</label>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PdfFindbarService {\n  public individualWordsMode = true;\n\n  public multipleSearchTexts = false;\n}\n","import { Component } from '@angular/core';\nimport { PdfFindbarService } from './../pdf-findbar-service';\n\n@Component({\n  selector: 'pdf-search-input-field',\n  templateUrl: './pdf-search-input-field.component.html',\n  styleUrls: ['./pdf-search-input-field.component.css'],\n})\nexport class PdfSearchInputFieldComponent {\n  constructor(public pdfFindbarService: PdfFindbarService) {}\n}\n","<input [class.hidden]=\"!pdfFindbarService.individualWordsMode\"\n  autocomplete=\"search-input-field\"\n  id=\"findInput\"\n  class=\"toolbarField\"\n  title=\"Find\"\n  [placeholder]=\"'Find in document…'\"\n  data-l10n-id=\"find_input\"\n  name=\"search-input-field\"\n/>\n<textarea\n  [class.hidden]=\"pdfFindbarService.individualWordsMode\"\n  id=\"findInputMultiline\"\n  type=\"checkbox\"\n  class=\"toolbarField\"\n  placeholder=\"Multiple search terms. Each line is a search term.\"\n  data-l10n-id=\"find_input_line_by_line\"\n  lines=\"3\"\n></textarea>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-previous',\n  templateUrl: './pdf-find-previous.component.html',\n  styleUrls: ['./pdf-find-previous.component.css'],\n})\nexport class PdfFindPreviousComponent {}\n","<button type=\"button\"\n  id=\"findPrevious\"\n  class=\"toolbarButton\"\n  title=\"Find the previous occurrence of the phrase\"\n  data-l10n-id=\"find_previous\"\n  >\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n  </svg>\n  <span data-l10n-id=\"find_previous_label\">Previous</span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-next',\n  templateUrl: './pdf-find-next.component.html',\n  styleUrls: ['./pdf-find-next.component.css'],\n})\nexport class PdfFindNextComponent {}\n","<button type=\"button\"\n  id=\"findNext\"\n  class=\"toolbarButton\"\n  title=\"Find the next occurrence of the phrase\"\n  data-l10n-id=\"find_next\">\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n  </svg>\n  <span data-l10n-id=\"find_next_label\">Next</span>\n</button>\n","import { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-input-area',\n  templateUrl: './pdf-find-input-area.component.html',\n  styleUrls: ['./pdf-find-input-area.component.css'],\n})\nexport class PdfFindInputAreaComponent {\n  @Input()\n  public customFindbarInputArea: TemplateRef<any> | undefined;\n}\n","<div id=\"findbarInputContainer\" *ngIf=\"!customFindbarInputArea\">\n  <pdf-search-input-field></pdf-search-input-field>\n  <pdf-find-previous></pdf-find-previous>\n  <pdf-find-next></pdf-find-next>\n</div>\n\n<ng-container [ngTemplateOutlet]=\"customFindbarInputArea || null\"> </ng-container>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-range',\n  templateUrl: './pdf-find-range.component.html',\n  styleUrls: ['./pdf-find-range.component.css'],\n})\nexport class PdfFindRangeComponent {}\n","<input\n  autocomplete=\"search-range-field\"\n  id=\"findRange\"\n  class=\"toolbarField\"\n  title=\"pages to search\"\n  [placeholder]=\"'pages (e.g. 6-10)'\"\n  data-l10n-id=\"find_range\"\n  name=\"search-range-field\"\n/>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-findbar-message-container',\n  templateUrl: './pdf-findbar-message-container.component.html',\n  styleUrls: ['./pdf-findbar-message-container.component.css'],\n})\nexport class PdfFindbarMessageContainerComponent {}\n","<div id=\"findbarMessageContainer\">\n  <span id=\"findMsg\" class=\"toolbarLabel\"></span>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-highlight-all',\n  templateUrl: './pdf-find-highlight-all.component.html',\n  styleUrls: ['./pdf-find-highlight-all.component.css'],\n})\nexport class PdfFindHighlightAllComponent {}\n","<input\n  type=\"checkbox\"\n  id=\"findHighlightAll\"\n  class=\"toolbarField\"\n/>\n<label\n  for=\"findHighlightAll\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_highlight\">\n  Highlight all\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-match-case',\n  templateUrl: './pdf-find-match-case.component.html',\n  styleUrls: ['./pdf-find-match-case.component.css'],\n})\nexport class PdfFindMatchCaseComponent {}\n","<input\n  type=\"checkbox\"\n  id=\"findMatchCase\"\n  class=\"toolbarField\"\n/>\n<label\n  for=\"findMatchCase\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_match_case_label\">\n    Match case\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-findbar-options-one-container',\n  templateUrl: './pdf-findbar-options-one-container.component.html',\n  styleUrls: ['./pdf-findbar-options-one-container.component.css'],\n})\nexport class PdfFindbarOptionsOneContainerComponent {}\n","<div id=\"findbarOptionsOneContainer\">\n  <pdf-find-highlight-all></pdf-find-highlight-all>\n  <pdf-find-match-case></pdf-find-match-case>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-fuzzily',\n  templateUrl: './pdf-find-fuzzily.component.html',\n  styleUrls: ['./pdf-find-fuzzily.component.css'],\n})\nexport class PdfFindFuzzilyComponent {}\n","<input\n  type=\"checkbox\"\n  id=\"findFuzzy\"\n  class=\"toolbarField\"\n/>\n<label\n  for=\"findFuzzy\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_fuzzy\">\n    Fuzzy search\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-ignore-accents',\n  templateUrl: './pdf-find-ignore-accents.component.html',\n  styleUrls: ['./pdf-find-ignore-accents.component.css'],\n})\nexport class PdfFindIgnoreAccentsComponent {}\n","<input\n  type=\"checkbox\"\n  id=\"findIgnoreAccents\"\n  class=\"toolbarField\"\n/>\n<label\n  for=\"findIgnoreAccents\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_ignore_accents\">\n    Ignore accents and diacritics\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-results-count',\n  templateUrl: './pdf-find-results-count.component.html',\n  styleUrls: ['./pdf-find-results-count.component.css'],\n})\nexport class PdfFindResultsCountComponent {}\n","<span id=\"findResultsCount\" class=\"toolbarLabel hidden\"></span>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-findbar-options-three-container',\n  templateUrl: './pdf-findbar-options-three-container.component.html',\n  styleUrls: ['./pdf-findbar-options-three-container.component.css'],\n})\nexport class PdfFindbarOptionsThreeContainerComponent {}\n","<div id=\"findbarOptionsThreeContainer\">\n  <pdf-find-ignore-accents></pdf-find-ignore-accents>\n  <pdf-find-fuzzily></pdf-find-fuzzily>\n  <pdf-find-results-count></pdf-find-results-count>\n</div>\n","import { Component } from '@angular/core';\nimport { PdfFindbarService } from '../../pdf-findbar-service';\n\n@Component({\n  selector: 'pdf-find-entire-phrase',\n  templateUrl: './pdf-find-entire-phrase.component.html',\n  styleUrls: ['./pdf-find-entire-phrase.component.css'],\n})\nexport class PdfFindMultipleSearchTextsComponent {\n  constructor(public pdfFindbarService: PdfFindbarService) {}\n}\n","<input\n  type=\"checkbox\"\n  id=\"findMultipleSearchTexts\"\n  class=\"toolbarField\"\n  [(ngModel)]=\"pdfFindbarService.multipleSearchTexts\"\n/>\n\n<label\n  for=\"findMultipleSearchTexts\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_multiple_texts_label\">\n  multiple search texts\n</label>\n\n<input [class.hidden]=\"!pdfFindbarService.multipleSearchTexts\"\n  type=\"checkbox\"\n  id=\"individualWordsMode\"\n  class=\"toolbarField\"\n  [(ngModel)]=\"pdfFindbarService.individualWordsMode\"\n/>\n\n<label [class.hidden]=\"!pdfFindbarService.multipleSearchTexts\"\n  for=\"individualWordsMode\"\n  id=\"individualWordsModeLabel\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_individual_words_label\">\n  separated by word boundaries\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-entire-word',\n  templateUrl: './pdf-find-entire-word.component.html',\n  styleUrls: ['./pdf-find-entire-word.component.css'],\n})\nexport class PdfFindEntireWordComponent {}\n","<input\n  type=\"checkbox\"\n  id=\"findEntireWord\"\n  class=\"toolbarField\"\n/>\n<label\n  for=\"findEntireWord\"\n  class=\"toolbarLabel\"\n  data-l10n-id=\"find_entire_word_label\">\n  Whole words\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-findbar-options-two-container',\n  templateUrl: './pdf-findbar-options-two-container.component.html',\n  styleUrls: ['./pdf-findbar-options-two-container.component.css'],\n})\nexport class PdfFindbarOptionsTwoContainerComponent {}\n","<div id=\"findbarOptionsTwoContainer\">\n  <pdf-find-entire-word></pdf-find-entire-word>\n  <pdf-find-entire-phrase></pdf-find-entire-phrase>\n</div>\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { getVersionSuffix, pdfDefaultOptions } from '../../options/pdf-default-options';\n\n@Component({\n  selector: 'pdf-findbar',\n  templateUrl: './pdf-findbar.component.html',\n  styleUrls: ['./pdf-findbar.component.css']\n})\nexport class PdfFindbarComponent {\n  @Input()\n  public showFindButton = true;\n\n  @Input()\n  public mobileFriendlyZoomScale: number;\n\n  @Input()\n  public findbarLeft: string | undefined;\n\n  @Input()\n  public findbarTop: string | undefined;\n\n  /* UI templates */\n  @Input()\n  public customFindbarInputArea: TemplateRef<any> | undefined;\n\n  @Input()\n  public customFindbar: TemplateRef<any>;\n\n  @Input()\n  public customFindbarButtons: TemplateRef<any>  | undefined;\n\n  @Input()\n  public showFindHighlightAll = true;\n\n  @Input()\n  public showFindMatchCase = true;\n\n  @Input()\n  public showFindCurrentPageOnly = true;\n\n  @Input()\n  public showFindPageRange = true;\n\n  @Input()\n  public showFindEntireWord = true;\n\n  @Input()\n  public showFindEntirePhrase = true;\n\n  @Input()\n  public showFindIgnoreAccents = true;\n\n  @Input()\n  public showFindFuzzySearch = true;\n\n  @Input()\n  public showFindResultsCount = true;\n\n  @Input()\n  public showFindMessages = true;\n\n  public pdfJsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n}\n","<ng-container [ngTemplateOutlet]=\"customFindbar ? customFindbar : defaultFindbar\">\n</ng-container>\n\n<ng-template #defaultFindbar>\n  <div\n    class=\"findbar hidden doorHanger\"\n    [class.invisible]=\"!showFindButton\"\n    id=\"findbar\"\n    [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n    [style.transformOrigin]=\"'left center'\"\n    [style.left]=\"findbarLeft\"\n    [style.top]=\"findbarTop\"\n  >\n    <ng-container [ngTemplateOutlet]=\"customFindbarButtons ? customFindbarButtons : defaultFindbarButtons\"> </ng-container>\n    </div>\n</ng-template>\n\n<ng-template #defaultFindbarButtons>\n  <pdf-find-input-area [customFindbarInputArea]=\"customFindbarInputArea\"></pdf-find-input-area>\n  <pdf-find-highlight-all [class.hidden]=\"!showFindHighlightAll\"></pdf-find-highlight-all>\n  <pdf-find-match-case [class.hidden]=\"!showFindMatchCase\"></pdf-find-match-case>\n  <pdf-find-current-page-only [class.hidden]=\"!showFindCurrentPageOnly\"></pdf-find-current-page-only>\n  <pdf-find-range [class.hidden]=\"!showFindPageRange\"></pdf-find-range>\n  <pdf-find-entire-word [class.hidden]=\"!showFindEntireWord\"></pdf-find-entire-word>\n  <pdf-find-entire-phrase [class.hidden]=\"!showFindEntirePhrase\"></pdf-find-entire-phrase>\n  <pdf-find-ignore-accents [class.hidden]=\"!showFindIgnoreAccents\"></pdf-find-ignore-accents>\n  <pdf-find-fuzzily [class.hidden]=\"!showFindFuzzySearch\"></pdf-find-fuzzily>\n  <pdf-find-results-count [class.hidden]=\"!showFindResultsCount\"></pdf-find-results-count>\n  <pdf-findbar-message-container [class.hidden]=\"!showFindMessages\"></pdf-findbar-message-container>\n</ng-template>\n","export enum PdfCursorTools {\n  SELECT = 0,\n  HAND = 1,\n  ZOOM = 2\n}\n","import { PdfCursorTools } from './../../options/pdf-cursor-tools';\nimport { Component, Input } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { HandtoolChanged } from '../../events/handtool-changed';\n\n@Component({\n  selector: 'pdf-hand-tool',\n  templateUrl: './pdf-hand-tool.component.html',\n  styleUrls: ['./pdf-hand-tool.component.css']\n})\nexport class PdfHandToolComponent {\n  @Input()\n  public showHandToolButton = true;\n\n  public isSelected = false;\n\n  constructor(private notificationService: PDFNotificationService) {\n    const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n      this.onPdfJsInit();\n      subscription.unsubscribe();\n    });\n  }\n\n  private onPdfJsInit() {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.on('cursortoolchanged',\n      ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.HAND));\n  }\n\n  public onClick(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.HAND });\n  }\n}\n","<button\n  (click)=\"onClick()\"\n  type=\"button\"\n  [class.invisible]=\"!showHandToolButton\"\n  [class.toggled]=\"isSelected\"\n  id=\"primaryCursorHandTool\"\n  class=\"toolbarButton hiddenXXLView\"\n  title=\"Enable hand tool\"\n  data-l10n-id=\"cursor_hand_tool\">\n  <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z\" />\n  </svg>\n  <span data-l10n-id=\"cursor_hand_tool_label\">Hand Tool</span>\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-open-file',\n  templateUrl: './pdf-open-file.component.html',\n  styleUrls: ['./pdf-open-file.component.css']\n})\nexport class PdfOpenFileComponent  {\n  @Input()\n  public showOpenFileButton = true;\n}\n","<button type=\"button\"\n        [class.invisible]=\"!showOpenFileButton\"\n        id=\"openFile\"\n        class=\"toolbarButton hiddenMediumView\"\n        title=\"Open File\"\n        data-l10n-id=\"open_file\">\n  <svg style=\"width:24px;height:20px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,12L16,16H13.5V19H10.5V16H8L12,12Z\" />\n  </svg>\n  <span data-l10n-id=\"open_file_label\">Open</span>\n</button>\n","import { PDFNotificationService } from './../../../pdf-notification-service';\nimport { Component, ViewChild, ElementRef} from '@angular/core';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\n\n@Component({\n  selector: 'pdf-first-page',\n  templateUrl: './pdf-first-page.component.html',\n  styleUrls: ['./pdf-first-page.component.css']\n})\nexport class PdfFirstPageComponent {\n  public disableFirstPage = true;\n\n  @ViewChild('button')\n  private button: ElementRef<HTMLButtonElement>;\n\n  constructor(private notificationService: PDFNotificationService) {\n    const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n      this.onPdfJsInit();\n      subscription.unsubscribe();\n    });\n  }\n\n  public firstPage(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('firstpage');\n  }\n\n  public onPdfJsInit(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableFirstPage = event.pageNumber <= 1;\n    this.button.nativeElement.disabled = this.disableFirstPage;\n  }\n}\n","<button type=\"button\"\n  class=\"toolbarButton hiddenLargeView\"\n  title=\"First page\"\n  id=\"primaryFirstPage\"\n  data-l10n-id=\"first_page\"\n  (click)=\"firstPage()\"\n  [disabled]=\"disableFirstPage\"\n  #button\n  >\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z\" />\n  </svg>\n  <span data-l10n-id=\"first_page_label\">First page</span>\n</button>\n","import { PDFNotificationService } from './../../../pdf-notification-service';\nimport { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\n\n@Component({\n  selector: 'pdf-last-page',\n  templateUrl: './pdf-last-page.component.html',\n  styleUrls: ['./pdf-last-page.component.css']\n})\nexport class PdfLastPageComponent {\n  public disableLastPage = true;\n\n  @ViewChild('button')\n  private button: ElementRef<HTMLButtonElement>;\n\n  constructor(private notificationService: PDFNotificationService) {\n    const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n      this.onPdfJsInit();\n      subscription.unsubscribe();\n    });\n  }\n\n  public firstPage(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('firstpage');\n  }\n\n  public onPdfJsInit(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.on('updateuistate', event => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableLastPage = event.pageNumber === event.pagesCount;\n    this.button.nativeElement.disabled = this.disableLastPage;\n  }\n\n  public lastPage(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('lastpage');\n  }\n}\n","<button type=\"button\"\n  class=\"toolbarButton hiddenLargeView\"\n  title=\"Last page\"\n  id=\"primaryLastPage\"\n  data-l10n-id=\"last_page\"\n  (click)=\"lastPage()\"\n  [disabled]=\"disableLastPage\"\n  #button\n  >\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z\" />\n  </svg>\n  <span data-l10n-id=\"last_page_label\">Last page</span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-next-page',\n  templateUrl: './pdf-next-page.component.html',\n  styleUrls: ['./pdf-next-page.component.css'],\n})\nexport class PdfNextPageComponent {}\n","<button type=\"button\"\n  class=\"toolbarButton\"\n  title=\"Next Page\"\n  id=\"next\"\n  data-l10n-id=\"next\"\n  >\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\" />\n  </svg>\n  <span data-l10n-id=\"next_label\">Next</span>\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-page-number',\n  templateUrl: './pdf-page-number.component.html',\n  styleUrls: ['./pdf-page-number.component.css'],\n})\nexport class PdfPageNumberComponent {\n  @Input()\n  public showPagingButtons = true;\n}\n","<input\n  [class.invisible]=\"!showPagingButtons\"\n  type=\"number\"\n  id=\"pageNumber\"\n  class=\"toolbarField pageNumber\"\n  title=\"Page\"\n  value=\"1\"\n  size=\"4\"\n  min=\"1\"\n  data-l10n-id=\"page\"\n/>\n<span [class.invisible]=\"!showPagingButtons\" id=\"numPages\" class=\"toolbarLabel hiddenXLView\"></span>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-previous-page',\n  templateUrl: './pdf-previous-page.component.html',\n  styleUrls: ['./pdf-previous-page.component.css'],\n})\nexport class PdfPreviousPageComponent {}\n","\n<button type=\"button\"\n  class=\"toolbarButton\"\n  title=\"Previous Page\"\n  id=\"previous\"\n  data-l10n-id=\"previous\"\n  >\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" />\n  </svg>\n  <span data-l10n-id=\"previous_label\">Previous</span>\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-paging-area',\n  templateUrl: './pdf-paging-area.component.html',\n  styleUrls: ['./pdf-paging-area.component.css']\n})\nexport class PdfPagingAreaComponent {\n\n  @Input()\n  public showPagingButtons = true;\n}\n","<div\n[class.invisible]=\"!showPagingButtons\"\nclass=\"paging-left hiddenTinyView\"\n>\n<pdf-first-page style=\"margin-right: -3px;\"></pdf-first-page>\n<pdf-previous-page style=\"margin-left: -3px;\"></pdf-previous-page>\n</div>\n<pdf-page-number [showPagingButtons]=\"showPagingButtons\"></pdf-page-number>\n<div\n[class.invisible]=\"!showPagingButtons\"\nclass=\"paging-right hiddenTinyView\"\n>\n<pdf-next-page style=\"margin-right: -3px;margin-left: -3px;\"></pdf-next-page>\n<pdf-last-page style=\"margin-left: -3px;\"></pdf-last-page>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-presentation-mode',\n  templateUrl: './pdf-presentation-mode.component.html',\n  styleUrls: ['./pdf-presentation-mode.component.css']\n})\nexport class PdfPresentationModeComponent  {\n  @Input()\n  public showPresentationModeButton = true;\n}\n","<button type=\"button\"\n        [class.invisible]=\"!showPresentationModeButton\"\n        id=\"presentationMode\"\n        class=\"toolbarButton hiddenLargeView\"\n        title=\"Switch to Presentation Mode\"\n        data-l10n-id=\"presentation_mode\">\n  <svg style=\"width:27px;height:27px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z\" />\n  </svg>\n  <span data-l10n-id=\"presentation_mode_label\">Presentation Mode</span>\n  </button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-print',\n  templateUrl: './pdf-print.component.html',\n  styleUrls: ['./pdf-print.component.css']\n})\nexport class PdfPrintComponent {\n  @Input()\n  public showPrintButton = true;\n}\n","<button type=\"button\"\n    [class.invisible]=\"!showPrintButton\"\n    id=\"print\"\n    class=\"toolbarButton hiddenSmallView\"\n    title=\"Print\"\n    data-l10n-id=\"print\"\n    >\n    <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n        <path fill=\"currentColor\" d=\"M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z\" />\n    </svg>\n    <span data-l10n-id=\"print_label\">Print</span>\n</button>\n","import { PDFNotificationService } from './../../pdf-notification-service';\nimport { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { UpdateUIStateEvent } from '../../events/update-ui-state-event';\n\n@Component({\n  selector: 'pdf-rotate-page',\n  templateUrl: './pdf-rotate-page.component.html',\n  styleUrls: ['./pdf-rotate-page.component.css']\n})\nexport class PdfRotatePageComponent  {\n  @Input()\n  public showRotateButton = true;\n\n  public disableRotate = true;\n\n  @Input()\n  public clockwise = true;\n\n  @Input()\n  public counterClockwise = true;\n\n  @ViewChild('button1')\n  private button1: ElementRef<HTMLButtonElement>;\n\n  @ViewChild('button2')\n  private button2: ElementRef<HTMLButtonElement>;\n\n  constructor(private notificationService: PDFNotificationService) {\n    const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n      this.onPdfJsInit();\n      subscription.unsubscribe();\n    });\n  }\n\n  public rotateCW(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('rotatecw');\n  }\n\n  public rotateCCW(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('rotateccw');\n  }\n\n\n  public onPdfJsInit(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\n    if (this.button1) {\n      this.button1.nativeElement.disabled = this.disableRotate;\n    }\n    if (this.button2) {\n      this.button2.nativeElement.disabled = this.disableRotate;\n    }\n  }\n}\n","<button\n  *ngIf=\"clockwise\"\n  (click)=\"rotateCW()\"\n  type=\"button\"\n  [class.invisible]=\"!showRotateButton\"\n  id=\"primaryPageRotateCw\"\n  class=\"toolbarButton hiddenXLView rotateCw\"\n  title=\"Rotate Clockwise\"\n  data-l10n-id=\"page_rotate_cw\"\n  [disabled]=\"disableRotate\"\n  #button1>\n    <svg style=\"width:23px;height:23px\" viewBox=\"0 0 24 24\">\n      <path fill=\"currentColor\" d=\"M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C14 21 15.92 20.34 17.5 19.14L16.06 17.7C14.87 18.54 13.45 19 12 19C8.13 19 5 15.87 5 12S8.13 5 12 5 19 8.13 19 12H16L20 16L24 12H21C21 7.03 16.97 3 12 3\" />\n    </svg>\n</button>\n<button\n  *ngIf=\"counterClockwise\"\n  (click)=\"rotateCCW()\"\n  type=\"button\"\n  [class.invisible]=\"!showRotateButton\"\n  id=\"primaryPageRotateCcw\"\n  class=\"toolbarButton hiddenXLView rotateCcw\"\n  title=\"Rotate Counterclockwise\"\n  data-l10n-id=\"page_rotate_ccw\"\n  [disabled]=\"disableRotate\"\n  #button2>\n    <svg style=\"width:23px;height:23px\" viewBox=\"0 0 24 24\">\n      <path fill=\"currentColor\" d=\"M12 3C7.03 3 3 7.03 3 12H0L4 16L8 12H5C5 8.13 8.13 5 12 5S19 8.13 19 12 15.87 19 12 19C10.55 19 9.13 18.54 7.94 17.7L6.5 19.14C8.08 20.34 10 21 12 21C16.97 21 21 16.97 21 12S16.97 3 12 3\" />\n    </svg>\n</button>\n","import { PdfCursorTools } from './../../options/pdf-cursor-tools';\nimport { Component, Input } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { HandtoolChanged } from '../../events/handtool-changed';\n\n@Component({\n  selector: 'pdf-select-tool',\n  templateUrl: './pdf-select-tool.component.html',\n  styleUrls: ['./pdf-select-tool.component.css']\n})\nexport class PdfSelectToolComponent {\n  @Input()\n  public showSelectToolButton = true;\n\n  public isSelected = true;\n\n  constructor(private notificationService: PDFNotificationService) {\n    const subscription = this.notificationService.onPDFJSInit.subscribe(() => {\n      this.onPdfJsInit();\n      subscription.unsubscribe();\n    });\n  }\n\n  private onPdfJsInit() {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.on('cursortoolchanged',\n      ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.SELECT));\n  }\n\n  public onClick(): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.SELECT });\n  }\n}\n","<button\n  (click)=\"onClick()\"\n  type=\"button\"\n  [class.invisible]=\"!showSelectToolButton\"\n  [class.toggled]=\"isSelected\"\n  id=\"primaryCursorSelectTool\"\n  class=\"toolbarButton hiddenXXLView\"\n  title=\"Enable text selection tool\"\n  data-l10n-id=\"cursor_text_select_tool\">\n  <svg style=\"width:22px;height:22px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z\" />\n  </svg>\n  <span data-l10n-id=\"cursor_text_select_tool_label\">Text selection tool</span>\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-toggle-secondary-toolbar',\n  templateUrl: './pdf-toggle-secondary-toolbar.component.html',\n  styleUrls: ['./pdf-toggle-secondary-toolbar.component.css'],\n})\nexport class PdfToggleSecondaryToolbarComponent {\n  @Input()\n  public showSecondaryToolbarButton = true;\n}\n","<button\n  type=\"button\"\n  [class.invisible]=\"!showSecondaryToolbarButton\"\n  id=\"secondaryToolbarToggle\"\n  class=\"toolbarButton\"\n  title=\"Tools\"\n  data-l10n-id=\"tools\"\n>\n  <svg style=\"width:27px;height:27px\" viewBox=\"0 0 24 24\" onclick=\"event.preventDefault(); return false;\">\n    <path fill=\"currentColor\" d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" />\n  </svg>\n  <span data-l10n-id=\"tools_label\">Tools</span>\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-toggle-sidebar',\n  templateUrl: './pdf-toggle-sidebar.component.html',\n  styleUrls: ['./pdf-toggle-sidebar.component.css'],\n})\nexport class PdfToggleSidebarComponent {\n  @Input()\n  public showSidebarButton = true;\n}\n","<button\n  type=\"button\"\n  [class.invisible]=\"!showSidebarButton\"\n  id=\"sidebarToggle\"\n  title=\"Toggle Sidebar\"\n  class=\"toolbarButton\"\n  data-l10n-id=\"toggle_sidebar\"\n>\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M3,9H17V7H3V9M3,13H17V11H3V13M3,17H17V15H3V17M19,17H21V15H19V17M19,7V9H21V7H19M19,13H21V11H19V13Z\" />\n  </svg>\n  <span data-l10n-id=\"toggle_sidebar_label\">Toggle Sidebar</span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-zoom-out',\n  templateUrl: './pdf-zoom-out.component.html',\n  styleUrls: ['./pdf-zoom-out.component.css'],\n})\nexport class PdfZoomOutComponent {}\n","<button type=\"button\"\n  id=\"zoomOut\"\n  class=\"toolbarButton zoomOut\"\n  title=\"Zoom Out\"\n  data-l10n-id=\"zoom_out\">\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M19,13H5V11H19V13Z\" />\n  </svg>\n  <span data-l10n-id=\"zoom_out_label\">Zoom Out</span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-zoom-in',\n  templateUrl: './pdf-zoom-in.component.html',\n  styleUrls: ['./pdf-zoom-in.component.css'],\n})\nexport class PdfZoomInComponent {}\n","<button type=\"button\"\n  id=\"zoomIn\"\n  class=\"toolbarButton zoomIn\"\n  title=\"Zoom In\"\n  data-l10n-id=\"zoom_in\">\n  <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n    <path fill=\"currentColor\" d=\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" />\n  </svg>\n  <span data-l10n-id=\"zoom_in_label\">Zoom In</span>\n</button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\n\ninterface ZoomLevel {\n  id: string;\n  dataL10nId: string;\n  dataL10nArgs: string | undefined;\n  value: string;\n  displayValue: string;\n}\n@Component({\n  selector: 'pdf-zoom-dropdown',\n  templateUrl: './pdf-zoom-dropdown.component.html',\n  styleUrls: ['./pdf-zoom-dropdown.component.css'],\n})\nexport class PdfZoomDropdownComponent {\n  public _zoomLevels: Array<ZoomLevel> = [];\n  // ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];\n\n  @Input()\n  public set zoomLevels(levels: Array<string | number>) {\n    this._zoomLevels = levels.map((l) => this.valueToZoomLevel(l));\n  }\n\n  @ViewChild('sizeSelector') sizeSelector: any;\n\n  constructor(private element: ElementRef) {}\n\n  private valueToZoomLevel(value: string | number): ZoomLevel {\n    if (value.toString().endsWith('%')) {\n      value = value.toString().replace('%', '');\n      value = Number(value) / 100;\n    }\n    const numericalValue = Number(value);\n    if (!numericalValue) {\n      const v = String(value);\n      return {\n        id: this.snakeToCamel(value + 'Option'),\n        value: v,\n        dataL10nId: 'page_scale_' + v.replace('page-', ''),\n        dataL10nArgs: undefined,\n        displayValue: v,\n      };\n    }\n    const percentage = Math.round(numericalValue * 100);\n    return {\n      id: `scale_${percentage}`,\n      value: String(numericalValue),\n      dataL10nId: 'page_scale_percent',\n      dataL10nArgs: `{ \"scale\": ${percentage} }`,\n      displayValue: String(percentage) + '%',\n    };\n  }\n\n  private snakeToCamel(str: string) {\n    // idea found here: https://hisk.io/javascript-snake-to-camel/\n    return str.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', ''));\n  }\n}\n","<span id=\"scaleSelectContainer\">\n  <select\n    id=\"scaleSelect\"\n    title=\"Zoom\"\n    data-l10n-id=\"zoom\"\n    #sizeSelector\n  >\n    <option *ngFor=\"let level of _zoomLevels\"\n      [id]=\"level.id\"\n      [attr.value]=\"level.value\"\n      [attr.data-l10n-id]=\"level.dataL10nId\"\n      [attr.data-l10n-args]=\"level.dataL10nArgs\">\n      {{level.displayValue}}\n    </option>\n    <option\n    id=\"customScaleOption\"\n    title=\"\"\n    value=\"custom\"\n    disabled=\"disabled\"\n    hidden=\"true\"\n  ></option>\n\n  </select>\n</span>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'pdf-zoom-toolbar',\n  templateUrl: './pdf-zoom-toolbar.component.html',\n  styleUrls: ['./pdf-zoom-toolbar.component.css'],\n})\nexport class PdfZoomToolbarComponent {\n  @Input()\n  public showZoomButtons = true;\n\n  @Input()\n  public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];\n}\n","<div [class.invisible]=\"!showZoomButtons\" id=\"toolbarViewerMiddle\">\n  <pdf-zoom-out></pdf-zoom-out>\n  <pdf-zoom-in></pdf-zoom-in>\n  <pdf-zoom-dropdown\n      style=\"width: unset; max-width: unset;padding-top:3px\" [zoomLevels]=\"zoomLevels\">\n  </pdf-zoom-dropdown>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\n\n@Component({\n  selector: 'pdf-toolbar',\n  templateUrl: './pdf-toolbar.component.html',\n  styleUrls: ['./pdf-toolbar.component.css'],\n})\nexport class PdfToolbarComponent {\n  @Input()\n  public customToolbar: TemplateRef<any> | undefined;\n\n  @Input()\n  public mobileFriendlyZoomScale = 1;\n\n  @Input()\n  public primaryMenuVisible = true;\n\n  @Input()\n  public showBookmarkButton = true;\n\n  @Input()\n  public showDownloadButton = true;\n\n  @Input()\n  public showFindButton: boolean | undefined = undefined;\n\n  @Input()\n  public showHandToolButton = true;\n\n  @Input()\n  public showOpenFileButton = true;\n\n  @Input()\n  public showPrintButton = true;\n\n  @Input()\n  public showPagingButtons = true;\n\n  @Input()\n  public showPresentationModeButton = false;\n\n  @Input()\n  public showRotateButton = true;\n\n  @Input()\n  public showSecondaryToolbarButton = true;\n\n  @Input()\n  public showSidebarButton = true;\n\n  @Input()\n  public showZoomButtons = true;\n\n  @Input()\n  public textLayer: boolean | undefined = undefined;\n\n  @Input()\n  public toolbarMarginTop = '0px';\n\n  @Input()\n  public toolbarWidth = '100%';\n\n  @Input()\n  public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];\n\n  @Output()\n  public onToolbarLoaded = new EventEmitter<HTMLElement>();\n\n  constructor(elementRef: ElementRef) {\n    this.onToolbarLoaded.emit(elementRef.nativeElement.getElementsByClassName('toolbar')[0] as HTMLElement);\n  }\n}\n","<div class=\"toolbar\" [class.invisible]=\"!primaryMenuVisible\"\n  [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\" [style.transformOrigin]=\"'left center'\"\n  [style.width]=\"toolbarWidth\" [style.marginTop]=\"toolbarMarginTop\">\n  <div id=\"toolbarContainer\">\n    <ng-content *ngTemplateOutlet=\"customToolbar ? customToolbar : defaultToolbar\"></ng-content>\n    <div id=\"loadingBar\">\n      <div class=\"progress\">\n        <div class=\"glimmer\"></div>\n      </div>\n    </div>\n  </div>\n</div>\n\n<ng-template #defaultToolbar>\n  <div id=\"toolbarViewer\">\n    <div id=\"toolbarViewerLeft\">\n      <pdf-toggle-sidebar [showSidebarButton]=\"showSidebarButton\"></pdf-toggle-sidebar>\n      <pdf-find-button [showFindButton]=\"showFindButton\" [textLayer]=\"textLayer\"></pdf-find-button>\n      <pdf-paging-area [showPagingButtons]=\"showPagingButtons\"></pdf-paging-area>\n    </div>\n    <pdf-zoom-toolbar [showZoomButtons]=\"showZoomButtons\" [zoomLevels]=\"zoomLevels\"></pdf-zoom-toolbar>\n    <div id=\"toolbarViewerRight\">\n      <div id=\"editorModeButtons\" class=\"splitToolbarButton hidden\" role=\"radiogroup\">\n        <button id=\"editorNone\" class=\"toolbarButton\" title=\"Disable Annotation Editing\" role=\"radio\"\n          aria-checked=\"false\" data-l10n-id=\"editor_none\">\n          <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n            <path fill=\"currentColor\" d=\"M12.07 5L9.24 7.83L19 17.59L17.58 19L7.82 9.25L5 12.07V5Z\" />\n          </svg>\n          <span data-l10n-id=\"editor_none_label\">Disable Editing</span>\n        </button>\n        <button id=\"editorFreeText\" class=\"toolbarButton\" title=\"Add FreeText Annotation\" role=\"radio\"\n          aria-checked=\"false\" data-l10n-id=\"editor_free_text\">\n          <svg style=\"width:24px;height:24px\" viewBox=\"0 0 24 24\">\n            <path fill=\"currentColor\"\n              d=\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" />\n          </svg> <span data-l10n-id=\"editor_free_text_label\">FreeText Annotation</span>\n        </button>\n      </div>\n\n      <pdf-hand-tool [showHandToolButton]=\"showHandToolButton\"></pdf-hand-tool>\n      <pdf-select-tool [showSelectToolButton]=\"showHandToolButton\"></pdf-select-tool>\n      <pdf-rotate-page [showRotateButton]=\"showRotateButton\" [clockwise]=\"true\" [counterClockwise]=\"false\">\n      </pdf-rotate-page>\n      <pdf-rotate-page [showRotateButton]=\"showRotateButton\" [clockwise]=\"false\" [counterClockwise]=\"true\">\n      </pdf-rotate-page>\n      <pdf-presentation-mode [showPresentationModeButton]=\"showPresentationModeButton\"></pdf-presentation-mode>\n      <pdf-open-file [showOpenFileButton]=\"showOpenFileButton\"></pdf-open-file>\n      <pdf-print [showPrintButton]=\"showPrintButton\"></pdf-print>\n      <pdf-download [showDownloadButton]=\"showDownloadButton\"></pdf-download>\n      <pdf-bookmark [showBookmarkButton]=\"showBookmarkButton\"></pdf-bookmark>\n      <pdf-toggle-secondary-toolbar [showSecondaryToolbarButton]=\"showSecondaryToolbarButton\">\n      </pdf-toggle-secondary-toolbar>\n    </div>\n  </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\n@Pipe({\n  name: 'translate'\n})\nexport class TranslatePipe implements PipeTransform {\n\n  transform(key: string, fallback: string): Promise<string> {\n    return this.translate(key, fallback);\n  }\n\n  public async translate(key: string, englishText: string): Promise<string> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n    return PDFViewerApplication.l10n.get(key, null, englishText);\n  }\n}\n","// tslint:disable:max-line-length\nimport { CommonModule, Location } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DynamicCssComponent } from './dynamic-css/dynamic-css.component';\nimport { PdfDocumentPropertiesDialogComponent } from './pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nimport { PdfErrorMessageComponent } from './pdf-dialog/pdf-error-message/pdf-error-message.component';\nimport { PdfPasswordDialogComponent } from './pdf-dialog/pdf-password-dialog/pdf-password-dialog.component';\nimport { PdfPreparePrintingDialogComponent } from './pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { PDFNotificationService } from './pdf-notification-service';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfAcroformDarkThemeComponent } from './theme/acroform-dark-theme/pdf-acroform-dark-theme.component';\nimport { PdfAcroformDefaultThemeComponent } from './theme/acroform-default-theme/pdf-acroform-default-theme.component';\nimport { PdfDarkThemeComponent } from './theme/pdf-dark-theme/pdf-dark-theme.component';\nimport { PdfLightThemeComponent } from './theme/pdf-light-theme/pdf-light-theme.component';\nimport { PdfOriginalComponent } from './theme/pdf-original-theme/pdf-original.component';\nimport { PdfBookmarkComponent } from './toolbar/pdf-bookmark/pdf-bookmark.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindCurrentPageOnlyComponent } from './toolbar/pdf-findbar/pdf-find-current-page-only/pdf-find-current-page-only.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindRangeComponent } from './toolbar/pdf-findbar/pdf-find-range/pdf-find-range.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindbarOptionsOneContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nimport { PdfFindFuzzilyComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component';\nimport { PdfFindIgnoreAccentsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFindbarOptionsThreeContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nimport { PdfFindMultipleSearchTextsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfFindbarOptionsTwoContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nimport { TranslatePipe } from './translate.pipe';\n\n@NgModule({\n  imports: [CommonModule, FormsModule],\n  declarations: [\n    DynamicCssComponent,\n    PdfZoomDropdownComponent,\n    PdfContextMenuComponent,\n    PdfPresentationModeComponent,\n    PdfOpenFileComponent,\n    PdfPrintComponent,\n    PdfDownloadComponent,\n    PdfBookmarkComponent,\n    PdfZoomToolbarComponent,\n    PdfPagingAreaComponent,\n    PdfFindbarComponent,\n    PdfSidebarComponent,\n    PdfHandToolComponent,\n    PdfSelectToolComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSearchInputFieldComponent,\n    PdfFindPreviousComponent,\n    PdfFindNextComponent,\n    PdfFindInputAreaComponent,\n    PdfFindbarOptionsTwoContainerComponent,\n    PdfFindbarOptionsOneContainerComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindEntireWordComponent,\n    PdfFindFuzzilyComponent,\n    PdfFindMultipleSearchTextsComponent,\n    PdfFindIgnoreAccentsComponent,\n    PdfFindbarOptionsThreeContainerComponent,\n    PdfFindResultsCountComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindRangeComponent,\n    PdfFindCurrentPageOnlyComponent,\n    PdfToolbarComponent,\n    PdfFindButtonComponent,\n    PdfToggleSidebarComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfLastPageComponent,\n    PdfFirstPageComponent,\n    PdfNextPageComponent,\n    PdfPreviousPageComponent,\n    PdfPageNumberComponent,\n    PdfRotatePageComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfDummyComponentsComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfOriginalComponent,\n    PdfDarkThemeComponent,\n    PdfLightThemeComponent,\n    TranslatePipe,\n    PdfAcroformDefaultThemeComponent,\n    PdfAcroformDarkThemeComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfErrorMessageComponent,\n  ],\n  providers: [PDFNotificationService, Location],\n  exports: [\n    PdfZoomDropdownComponent,\n    PdfContextMenuComponent,\n    PdfPresentationModeComponent,\n    PdfOpenFileComponent,\n    PdfPrintComponent,\n    PdfDownloadComponent,\n    PdfBookmarkComponent,\n    PdfZoomToolbarComponent,\n    PdfPagingAreaComponent,\n    PdfFindbarComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSearchInputFieldComponent,\n    PdfFindPreviousComponent,\n    PdfFindNextComponent,\n    PdfFindInputAreaComponent,\n    PdfFindbarOptionsTwoContainerComponent,\n    PdfFindbarOptionsOneContainerComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindEntireWordComponent,\n    PdfFindMultipleSearchTextsComponent,\n    PdfFindIgnoreAccentsComponent,\n    PdfFindbarOptionsThreeContainerComponent,\n    PdfFindResultsCountComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindRangeComponent,\n    PdfFindCurrentPageOnlyComponent,\n    PdfHandToolComponent,\n    PdfRotatePageComponent,\n    PdfSelectToolComponent,\n    PdfToolbarComponent,\n    PdfFindButtonComponent,\n    PdfToggleSidebarComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfLastPageComponent,\n    PdfFirstPageComponent,\n    PdfNextPageComponent,\n    PdfPreviousPageComponent,\n    PdfPageNumberComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfOriginalComponent,\n    PdfDarkThemeComponent,\n    PdfLightThemeComponent,\n    TranslatePipe,\n    DynamicCssComponent,\n    PdfDummyComponentsComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAcroformDarkThemeComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfErrorMessageComponent,\n  ],\n})\nexport class NgxExtendedPdfViewerCommonModule {}\n","export interface FindOptions {\n  highlightAll?: boolean;\n  matchCase?: boolean;\n  wholeWords?: boolean;\n  ignoreAccents?: boolean;\n  findMultipleSearchTexts?: boolean;\n  fuzzySearch?: boolean;\n}\n\nexport interface PDFExportScaleFactor {\n  width?: number;\n  height?: number;\n  scale?: number;\n}\n\nexport class NgxExtendedPdfViewerService {\n  public findMultiple(text: Array<string>, options: FindOptions = {}): boolean {\n    return false;\n  }\n\n  public find(text: string, options: FindOptions = {}): boolean {\n    return false;\n  }\n\n  public findNext(): boolean {\n    return false;\n  }\n\n  public findPrevious(): boolean {\n    return false;\n  }\n\n  public print(printRange?: any) {\n    return false;\n  }\n\n  public removePrintRange() {}\n\n  public setPrintRange(printRange: any) {}\n\n  public filteredPageCount(pageCount: number, range: any): number {\n    return 0;\n  }\n\n  public isInPDFPrintRange(pageIndex: number, printRange: any) {}\n\n  public async getPageAsText(pageNumber: number): Promise<string> {\n    return '';\n  }\n\n  public async getCurrentDocumentAsBlob(): Promise<Blob> {\n    return new Blob([], { type: 'application/pdf' });\n  }\n\n  public async getFormData(): Promise<Array<Object>> {\n    return [];\n  }\n  public addPageToRenderQueue(pageIndex: number): boolean {\n    return false;\n  }\n\n  public isRenderQueueEmpty(): boolean {\n    return true;\n  }\n\n  public hasPageBeenRendered(pageIndex: number): boolean {\n    return false;\n  }\n\n  public numberOfPages(): number {\n    return 0;\n  }\n\n  public getCurrentlyVisiblePageNumbers(): Array<number> {\n    return [];\n  }\n}\n","import { CommonModule } from '@angular/common';\n// tslint:disable:max-line-length\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxExtendedPdfViewerCommonModule } from './ngx-extended-pdf-viewer-common.module';\nimport { NgxExtendedPdfViewerServerComponent } from './ngx-extended-pdf-viewer-server.component';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer-server.service';\nimport { PdfDocumentPropertiesDialogComponent } from './pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nimport { PdfErrorMessageComponent } from './pdf-dialog/pdf-error-message/pdf-error-message.component';\nimport { PdfPasswordDialogComponent } from './pdf-dialog/pdf-password-dialog/pdf-password-dialog.component';\nimport { PdfPreparePrintingDialogComponent } from './pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfAcroformDarkThemeComponent } from './theme/acroform-dark-theme/pdf-acroform-dark-theme.component';\nimport { PdfAcroformDefaultThemeComponent } from './theme/acroform-default-theme/pdf-acroform-default-theme.component';\nimport { PdfBookmarkComponent } from './toolbar/pdf-bookmark/pdf-bookmark.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindbarOptionsOneContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nimport { PdfFindIgnoreAccentsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFindbarOptionsThreeContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nimport { PdfFindMultipleSearchTextsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfFindbarOptionsTwoContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\n\n@NgModule({\n  imports: [NgxExtendedPdfViewerCommonModule, CommonModule, FormsModule],\n  declarations: [NgxExtendedPdfViewerServerComponent],\n  providers: [NgxExtendedPdfViewerService],\n  exports: [\n    PdfZoomDropdownComponent,\n    PdfContextMenuComponent,\n    PdfPresentationModeComponent,\n    PdfOpenFileComponent,\n    PdfPrintComponent,\n    PdfDownloadComponent,\n    PdfBookmarkComponent,\n    PdfZoomToolbarComponent,\n    PdfPagingAreaComponent,\n    PdfFindbarComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSearchInputFieldComponent,\n    PdfFindPreviousComponent,\n    PdfFindNextComponent,\n    PdfFindInputAreaComponent,\n    PdfFindbarOptionsTwoContainerComponent,\n    PdfFindbarOptionsOneContainerComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindEntireWordComponent,\n    PdfFindMultipleSearchTextsComponent,\n    PdfFindIgnoreAccentsComponent,\n    PdfFindbarOptionsThreeContainerComponent,\n    PdfFindResultsCountComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfHandToolComponent,\n    PdfRotatePageComponent,\n    PdfSelectToolComponent,\n    PdfToolbarComponent,\n    PdfFindButtonComponent,\n    PdfToggleSidebarComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfLastPageComponent,\n    PdfFirstPageComponent,\n    PdfNextPageComponent,\n    PdfPreviousPageComponent,\n    PdfPageNumberComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    NgxExtendedPdfViewerServerComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAcroformDarkThemeComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfErrorMessageComponent,\n  ],\n})\nexport class NgxExtendedPdfViewerServerModule {}\n","import { OptionalContentConfig } from './optional_content_config';\n\nexport enum ScrollModeType {\n  vertical = 0,\n  horizontal = 1,\n  wrapped = 2,\n  page = 3,\n}\n\nexport enum SpreadModeType {\n  UNKNOWN = -1,\n  NONE = 0, // Default value.\n  ODD = 1,\n  EVEN = 2,\n}\n\nexport type PageViewModeType = 'single' | 'book' | 'multiple' | 'infinite-scroll';\n\nexport interface ScrollModeChangedEvent {\n  mode: ScrollModeType;\n}\nexport interface IPDFRenderingQueue {\n  getHighestPriority(visiblePage: Array<any>, pages: Array<any>, scrolledDown: boolean, preRenderExtra: boolean);\n}\nexport interface IPDFViewer {\n  currentPageLabel: string | undefined;\n  currentPageNumber: number;\n  currentScaleValue: string | number;\n  pagesRotation: 0 | 90 | 180 | 270;\n  removePageBorders: boolean;\n  renderingQueue: IPDFRenderingQueue;\n  scrollMode: ScrollModeType;\n  spreadMode: 0 | 1 | 2;\n  _pages: Array<any>;\n  addPageToRenderQueue(pageIndex: number): boolean;\n  _getVisiblePages(): Array<any>;\n  optionalContentConfigPromise: Promise<OptionalContentConfig> | null;\n  _scrollPageIntoView({ pageDiv: HTMLElement, pageSpot: any, pageNumber: number }): void;\n}\n","import { NgZone } from '@angular/core';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\n\nexport class PinchOnMobileSupport {\n  private viewer: any;\n  private startX = 0;\n  private startY = 0;\n  private initialPinchDistance = 0;\n  private pinchScale = 1;\n\n  private boundOnViewerTouchStart: any;\n  private boundOnViewerTouchMove: any;\n  private boundOnViewerTouchEnd: any;\n\n  constructor(private _zone: NgZone) {\n    this.boundOnViewerTouchStart = this.onViewerTouchStart.bind(this);\n    this.boundOnViewerTouchMove = this.onViewerTouchMove.bind(this);\n    this.boundOnViewerTouchEnd = this.onViewerTouchEnd.bind(this);\n\n    this.initializePinchZoom();\n  }\n\n  private isMobile() {\n    return ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || ((<any>navigator).msMaxTouchPoints > 0);\n  }\n\n  private onViewerTouchStart(event: TouchEvent): void {\n    this.initialPinchDistance = 0;\n\n    if (event.touches.length === 2) {\n      const container = document.getElementById('viewerContainer') as HTMLDivElement;\n      const rect = container.getBoundingClientRect();\n      if (event.touches[0].pageX >= rect.left && event.touches[0].pageX <= rect.right) {\n        if (event.touches[0].pageY >= (rect.top + window.scrollY) && event.touches[0].pageY <= (rect.bottom + window.scrollY)) {\n          if (event.touches[1].pageX >= rect.left && event.touches[1].pageX <= rect.right) {\n            if (event.touches[1].pageY >= (rect.top + window.scrollY) && event.touches[1].pageY <= (rect.bottom + window.scrollY)) {\n              this.startX = (event.touches[0].pageX + event.touches[1].pageX) / 2;\n              this.startY = (event.touches[0].pageY + event.touches[1].pageY) / 2;\n              this.initialPinchDistance = Math.hypot(event.touches[1].pageX - event.touches[0].pageX, event.touches[1].pageY - event.touches[0].pageY);\n\n              if (event.cancelable) {\n                event.preventDefault();\n              }\n              event.stopPropagation();\n            }\n          }\n        }\n      }\n    }\n  }\n\n  private onViewerTouchMove(event: TouchEvent): void {\n    const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n    const PDFViewerApplication: any = (window as any).PDFViewerApplication;\n\n    if (this.initialPinchDistance <= 0 || event.touches.length !== 2) {\n      return;\n    }\n\n    const pinchDistance = Math.hypot(event.touches[1].pageX - event.touches[0].pageX, event.touches[1].pageY - event.touches[0].pageY);\n    const container = document.getElementById('viewerContainer') as HTMLDivElement;\n    const originX = this.startX + container.scrollLeft;\n    const originY = this.startY + container.scrollTop;\n    this.pinchScale = pinchDistance / this.initialPinchDistance;\n    let minZoom = Number(PDFViewerApplicationOptions.get('minZoom'));\n    if (!minZoom) {\n      minZoom = 0.1;\n    }\n\n    const currentZoom = PDFViewerApplication.pdfViewer._currentScale;\n    if (currentZoom * this.pinchScale < minZoom) {\n      this.pinchScale = minZoom / currentZoom;\n    }\n    let maxZoom = Number(PDFViewerApplicationOptions.get('maxZoom'));\n    if (!maxZoom) {\n      maxZoom = 10;\n    }\n    if (currentZoom * this.pinchScale > maxZoom) {\n      this.pinchScale = maxZoom / currentZoom;\n    }\n    this.viewer.style.transform = `scale(${this.pinchScale})`;\n    this.viewer.style.transformOrigin = `${originX}px ${originY}px`;\n\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    event.stopPropagation();\n  }\n\n  private onViewerTouchEnd(event: TouchEvent): void {\n    const PDFViewerApplication: any = (window as any).PDFViewerApplication;\n    if (this.initialPinchDistance <= 0) {\n      return;\n    }\n    this.viewer.style.transform = `none`;\n    this.viewer.style.transformOrigin = `unset`;\n    PDFViewerApplication.pdfViewer.currentScale *= this.pinchScale;\n    const container = document.getElementById('viewerContainer') as HTMLDivElement;\n    const rect = container.getBoundingClientRect();\n    const dx = this.startX - rect.left;\n    const dy = this.startY - rect.top;\n    container.scrollLeft += dx * (this.pinchScale - 1);\n    container.scrollTop += dy * (this.pinchScale - 1);\n    this.resetPinchZoomParams();\n\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    event.stopPropagation();\n  }\n\n  private resetPinchZoomParams(): void {\n    this.startX = this.startY = this.initialPinchDistance = 0;\n    this.pinchScale = 1;\n  }\n\n  public initializePinchZoom(): void {\n    if (!this.isMobile()) {\n      return;\n    }\n    this.viewer = document.getElementById('viewer');\n    this._zone.runOutsideAngular(() => {\n      document.addEventListener('touchstart', this.boundOnViewerTouchStart);\n      document.addEventListener('touchmove', this.boundOnViewerTouchMove, { passive: false });\n      document.addEventListener('touchend', this.boundOnViewerTouchEnd);\n    });\n  }\n\n  public destroyPinchZoom(): void {\n    if (!this.isMobile()) {\n      return;\n    }\n    document.removeEventListener('touchstart', this.boundOnViewerTouchStart);\n    document.removeEventListener('touchmove', this.boundOnViewerTouchMove);\n    document.removeEventListener('touchend', this.boundOnViewerTouchEnd);\n  }\n}\n","export class UnitToPx {\n  // cache this.con, el for reused\n  private static con: HTMLDivElement | undefined = undefined;\n  private static el: HTMLDivElement | undefined = undefined;\n\n  // high sample will more accurate?\n  private static readonly sample = 100;\n\n  private static pxPerUnitCache: { [key: string]: number } = {};\n\n  private static initElements(): void {\n    if (!document) {\n      return;\n    }\n    if (!this.con || !this.el) {\n      this.con = document.createElement('div');\n      this.el = document.createElement('div');\n    }\n    this.con.style.position = 'absolute';\n    this.con.style.width = '0';\n    this.con.style.height = '0';\n    this.con.style.visibility = 'hidden';\n    this.con.style.overflow = 'hidden';\n    this.con.appendChild(this.el);\n  }\n\n  private static pxPerUnit(unit: string): number {\n    if (!this.pxPerUnitCache[unit]) {\n      if (!this.con || !this.el) {\n        this.initElements();\n      }\n      if (!this.con || !this.el) {\n        // dummy implementation for server-side rendering\n        return 1;\n      }\n      this.el.style.width = this.sample + unit;\n      document.body.appendChild(this.con);\n      const dimension = this.el.getBoundingClientRect();\n      this.con.parentNode!.removeChild(this.con);\n      this.pxPerUnitCache[unit] = dimension.width / this.sample;\n    }\n    return this.pxPerUnitCache[unit];\n  }\n\n  public static toPx(length): number {\n    const unitRe = /^\\s*([+-]?[\\d\\.]*)\\s*(.*)\\s*$/i; // NOSONAR\n    const match = unitRe.exec(length);\n    if (match != null && match.length > 2) {\n      const bare = match[1] === '';\n      const val = bare ? 1 : Number(match[1]);\n      const unit = match[2];\n      const valid = !isNaN(val) && unit;\n      if (valid) {\n        return unit === 'px' ? val : this.pxPerUnit(unit) * val;\n      }\n    }\n    throw new TypeError('Error parsing length');\n  }\n}\n","import { Subject } from 'rxjs';\nimport { NgxExtendedPdfViewerComponent } from './ngx-extended-pdf-viewer.component';\nimport { PdfLayer } from './options/optional_content_config';\nimport { PDFPrintRange } from './options/pdf-print-range';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport interface FindOptions {\n  highlightAll?: boolean;\n  matchCase?: boolean;\n  wholeWords?: boolean;\n  ignoreAccents?: boolean;\n  findMultipleSearchTexts?: boolean;\n  fuzzySearch?: boolean;\n  currentPage?: boolean; // search only in the current page\n  pageRange?: string; // page range definition, e.g. \"2\", \"2,3,4\", \"5-6\" or \"2,5-6,7\"\n}\n\ninterface DrawContext {\n  ctx: CanvasRenderingContext2D;\n  canvas: HTMLCanvasElement;\n}\n\nexport interface PDFExportScaleFactor {\n  width?: number;\n  height?: number;\n  scale?: number;\n}\n\nexport class NgxExtendedPdfViewerService {\n  public recalculateSize$ = new Subject<void>();\n\n  public findMultiple(text: Array<string>, options: FindOptions = {}): boolean {\n    options = {\n      ...options,\n      findMultipleSearchTexts: true,\n    };\n    const searchString = text.join('\\n') + '\\n';\n    return this.find(searchString, options);\n  }\n\n  public find(text: string, options: FindOptions = {}): boolean {\n    if (!NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call find() later.\");\n      return false;\n    } else {\n      const highlightAllCheckbox = document.getElementById('findHighlightAll') as HTMLInputElement;\n      if (highlightAllCheckbox) {\n        highlightAllCheckbox.checked = options.highlightAll || false;\n      }\n      const findPageRange = document.getElementById('findRange') as HTMLInputElement;\n      if (findPageRange) {\n        findPageRange.value = options.pageRange || '';\n      }\n      const findCurrentPageCheckbox = document.getElementById('findCurrentPage') as HTMLInputElement;\n      if (findCurrentPageCheckbox) {\n        findCurrentPageCheckbox.checked = options.currentPage || false;\n      }\n\n      const matchCaseCheckbox = document.getElementById('findMatchCase') as HTMLInputElement;\n      if (matchCaseCheckbox) {\n        matchCaseCheckbox.checked = options.matchCase || false;\n      }\n      const entireWordCheckbox = document.getElementById('findEntireWord') as HTMLInputElement;\n      if (entireWordCheckbox) {\n        entireWordCheckbox.checked = options.wholeWords || false;\n      }\n      const findIgnoreAccentsCheckbox = document.getElementById('findIgnoreAccents') as HTMLInputElement;\n      if (findIgnoreAccentsCheckbox) {\n        findIgnoreAccentsCheckbox.checked = options.ignoreAccents || false;\n      }\n      const multipleSearchTerms = options.findMultipleSearchTexts || text.includes('\\n') || false;\n      const findMultipleSearchTextsCheckbox = document.getElementById('findMultipleSearchTexts') as HTMLInputElement;\n      if (findMultipleSearchTextsCheckbox) {\n        findMultipleSearchTextsCheckbox.checked = multipleSearchTerms;\n      }\n      const individualWordsModeCheckbox = document.getElementById('individualWordsMode') as HTMLInputElement;\n      if (individualWordsModeCheckbox) {\n        individualWordsModeCheckbox.checked = false;\n      }\n      const fuzzySearchCheckbox = document.getElementById('findFuzzy') as HTMLInputElement;\n      if (fuzzySearchCheckbox) {\n        fuzzySearchCheckbox.checked = options.fuzzySearch || false;\n      }\n      const inputField = multipleSearchTerms ? document.getElementById('findInputMultiline') : document.getElementById('findInput');\n      if (inputField) {\n        if (inputField instanceof HTMLTextAreaElement) {\n          inputField.value = text;\n\n          // todo dirty hack!\n          inputField.classList.remove('hidden');\n          (document.getElementById('findInput') as HTMLInputElement).classList.add('hidden');\n          (document.getElementById('individualWordsModeLabel') as HTMLInputElement).classList.remove('hidden');\n          (document.getElementById('individualWordsMode') as HTMLInputElement).classList.remove('hidden');\n          // end of the dirty hack\n        } else if (inputField instanceof HTMLInputElement) {\n          inputField.value = text;\n          // todo dirty hack!\n          inputField.classList.remove('hidden');\n          (document.getElementById('findInputMultiline') as HTMLInputElement).classList.add('hidden');\n          (document.getElementById('individualWordsModeLabel') as HTMLInputElement).classList.add('hidden');\n          (document.getElementById('individualWordsMode') as HTMLInputElement).classList.add('hidden');\n          // end of the dirty hack\n        }\n        inputField.dispatchEvent(new Event('input'));\n        return true;\n      } else {\n        // tslint:disable-next-line:quotemark\n        console.error(\"Unexpected error: the input field used to search isn't part of the DOM.\");\n        return false;\n      }\n    }\n  }\n\n  public findNext(): boolean {\n    if (!NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call findNext() later.\");\n      return false;\n    } else {\n      const button = document.getElementById('findNext');\n      if (button) {\n        button.click();\n        return true;\n      }\n      return false;\n    }\n  }\n\n  public findPrevious(): boolean {\n    if (!NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call findPrevious() later.\");\n      return false;\n    } else {\n      const button = document.getElementById('findPrevious');\n      if (button) {\n        button.click();\n        return true;\n      }\n      return false;\n    }\n  }\n\n  public print(printRange?: PDFPrintRange) {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const alreadyThere = !!window['isInPDFPrintRange'] && !printRange;\n    if (!alreadyThere) {\n      if (!printRange) {\n        printRange = {} as PDFPrintRange;\n      }\n      this.setPrintRange(printRange);\n    }\n    (window as any).printPDF();\n    if (!alreadyThere) {\n      PDFViewerApplication.eventBus.on('afterprint', () => {\n        this.removePrintRange();\n      });\n    }\n  }\n\n  public removePrintRange() {\n    window['isInPDFPrintRange'] = undefined;\n    window['filteredPageCount'] = undefined;\n  }\n\n  public setPrintRange(printRange: PDFPrintRange) {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    window['isInPDFPrintRange'] = (page: number) => this.isInPDFPrintRange(page, printRange as PDFPrintRange);\n    window['filteredPageCount'] = this.filteredPageCount(PDFViewerApplication.pagesCount, printRange);\n  }\n\n  public filteredPageCount(pageCount: number, range: PDFPrintRange): number {\n    let result = 0;\n    for (let page = 1; page <= pageCount; page++) {\n      if (this.isInPDFPrintRange(page, range)) {\n        result++;\n      }\n    }\n    return result;\n  }\n\n  public isInPDFPrintRange(pageIndex: number, printRange: PDFPrintRange) {\n    const page = pageIndex + 1;\n    if (printRange.from) {\n      if (page < printRange.from) {\n        return false;\n      }\n    }\n    if (printRange.to) {\n      if (page > printRange.to) {\n        return false;\n      }\n    }\n    if (printRange.excluded) {\n      let e = printRange.excluded as Array<number>;\n      if (e.some((p) => p === page)) {\n        return false;\n      }\n    }\n    if (printRange.included) {\n      if (!printRange.included.some((p) => p === page)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  public getPageAsText(pageNumber: number): Promise<string> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const pdfDocument = PDFViewerApplication.pdfDocument;\n\n    const pagePromise: Promise<any> = pdfDocument.getPage(pageNumber);\n\n    const extractTextSnippets = (pdfPage) =>\n      new Promise<any>((resolve, reject) => {\n        const textSnippets = pdfPage.getTextContent();\n        resolve(textSnippets);\n      });\n    const combineTextSnippets = (textSnippets) =>\n      new Promise<string>((resolve, reject) => {\n        const text = this.convertTextInfoToText(textSnippets);\n        resolve(text);\n      });\n    return pagePromise.then(extractTextSnippets).then(combineTextSnippets);\n  }\n\n  private convertTextInfoToText(textInfo: any): string {\n    if (!textInfo) {\n      return '';\n    }\n    return textInfo.items.map((info) => info.str).join('');\n  }\n\n  public getPageAsImage(pageNumber: number, scale: PDFExportScaleFactor, background?: string, backgroundColorToReplace: string = '#FFFFFF'): Promise<any> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const pdfDocument = PDFViewerApplication.pdfDocument;\n    const pagePromise: Promise<any> = pdfDocument.getPage(pageNumber);\n    const imagePromise = (pdfPage) =>\n      new Promise<any>((resolve, reject) => {\n        resolve(this.draw(pdfPage, scale, background, backgroundColorToReplace));\n      });\n\n    return pagePromise.then(imagePromise);\n  }\n\n  private draw(pdfPage: any, scale: PDFExportScaleFactor, background?: string, backgroundColorToReplace: string = '#FFFFFF'): Promise<HTMLCanvasElement> {\n    let zoomFactor = 1;\n    if (scale.scale) {\n      zoomFactor = scale.scale;\n    } else if (scale.width) {\n      zoomFactor = scale.width / pdfPage.getViewport({ scale: 1 }).width;\n    } else if (scale.height) {\n      zoomFactor = scale.height / pdfPage.getViewport({ scale: 1 }).height;\n    }\n    const viewport = pdfPage.getViewport({\n      scale: zoomFactor,\n    });\n    const { ctx, canvas } = this.getPageDrawContext(viewport.width, viewport.height);\n    const drawViewport = viewport.clone();\n\n    const renderContext = {\n      canvasContext: ctx,\n      viewport: drawViewport,\n      background,\n      backgroundColorToReplace,\n    };\n    const renderTask = pdfPage.render(renderContext);\n\n    const dataUrlPromise = () =>\n      new Promise<string>((resolve, reject) => {\n        resolve(canvas.toDataURL());\n      });\n\n    return renderTask.promise.then(dataUrlPromise);\n  }\n\n  private getPageDrawContext(width: number, height: number): DrawContext {\n    const canvas = document.createElement('canvas') as HTMLCanvasElement;\n    const ctx = canvas.getContext('2d', { alpha: true });\n    if (!ctx) {\n      // tslint:disable-next-line: quotemark\n      throw new Error(\"Couldn't create the 2d context\");\n    }\n\n    canvas.width = width;\n    canvas.height = height;\n    canvas.style.width = width + 'px';\n    canvas.style.height = height + 'px';\n\n    return { ctx, canvas };\n  }\n\n  public async getCurrentDocumentAsBlob(): Promise<Blob> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const data = await PDFViewerApplication.pdfDocument.saveDocument(PDFViewerApplication.pdfDocument.annotationStorage);\n    return new Blob([data], { type: 'application/pdf' });\n  }\n\n  public async getFormData(currentFormValues = true): Promise<Array<Object>> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const pdf /*: PDFDocumentProxy */ = PDFViewerApplication.pdfDocument;\n    // screen DPI / PDF DPI\n    const dpiRatio = 96 / 72;\n    const result: Array<Object> = [];\n    for (let i = 1; i <= pdf.numPages; i++) {\n      // track the current page\n      const currentPage /* : PDFPageProxy */ = await pdf.getPage(i);\n      const annotations = await currentPage.getAnnotations();\n\n      annotations\n        .filter((a) => a.subtype === 'Widget') // get the form field annotations only\n        .map((a) => ({ ...a })) // only expose copies of the annotations to avoid side-effects\n        .forEach((a) => {\n          // get the rectangle that represent the single field\n          // and resize it according to the current DPI\n          const fieldRect: Array<number> = currentPage.getViewport({ scale: dpiRatio }).convertToViewportRectangle(a.rect);\n\n          // add the corresponding input\n          if (currentFormValues && a.fieldName) {\n            try {\n              if (a.exportValue) {\n                const currentValue = PDFViewerApplication.pdfDocument.annotationStorage.getValue(a.id, a.fieldName + '/' + a.exportValue, '');\n                a.value = currentValue?.value;\n              } else if (a.radioButton) {\n                const currentValue = PDFViewerApplication.pdfDocument.annotationStorage.getValue(a.id, a.fieldName + '/' + a.fieldValue, '');\n                a.value = currentValue?.value;\n              } else {\n                const currentValue = PDFViewerApplication.pdfDocument.annotationStorage.getValue(a.id, a.fieldName, '');\n                a.value = currentValue?.value;\n              }\n            } catch (exception) {\n              debugger;\n            }\n          }\n          result.push({ fieldAnnotation: a, fieldRect, pageNumber: i });\n        });\n    }\n    return result;\n  }\n\n  /**\n   * Adds a page to the rendering queue\n   * @param {number} pageIndex Index of the page to render\n   * @returns {boolean} false, if the page has already been rendered\n   * or if it's out of range\n   */\n  public addPageToRenderQueue(pageIndex: number): boolean {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    return PDFViewerApplication.pdfViewer.addPageToRenderQueue(pageIndex);\n  }\n\n  public isRenderQueueEmpty(): boolean {\n    const scrolledDown = true;\n    const renderExtra = false;\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const nextPage = PDFViewerApplication.pdfViewer.renderingQueue.getHighestPriority(\n      PDFViewerApplication.pdfViewer._getVisiblePages(),\n      PDFViewerApplication.pdfViewer._pages,\n      scrolledDown,\n      renderExtra\n    );\n    return !nextPage;\n  }\n\n  public hasPageBeenRendered(pageIndex: number): boolean {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const pages = PDFViewerApplication.pdfViewer._pages;\n    if (pages.length > pageIndex && pageIndex >= 0) {\n      const pageView = pages[pageIndex];\n      const isLoading = pageView.div.querySelector('.loadingIcon');\n      return !isLoading;\n    }\n    return false;\n  }\n\n  public currentlyRenderedPages(): Array<number> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const pages = PDFViewerApplication.pdfViewer._pages;\n    return pages.filter((page) => !page.div.querySelector('.loadingIcon')).map((page) => page.id);\n  }\n\n  public numberOfPages(): number {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const pages = PDFViewerApplication.pdfViewer._pages;\n    return pages.length;\n  }\n\n  public getCurrentlyVisiblePageNumbers(): Array<number> {\n    const app = (window as any).PDFViewerApplication as IPDFViewerApplication;\n    const pages = (app.pdfViewer._getVisiblePages() as any).views as Array<any>;\n    const pageNumbers = pages?.map((page) => page.id);\n    return pageNumbers;\n  }\n\n  public recalculateSize(): void {\n    this.recalculateSize$.next();\n  }\n\n  public async listLayers(): Promise<Array<PdfLayer> | undefined> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n    const optionalContentConfig = await PDFViewerApplication.pdfViewer.optionalContentConfigPromise;\n    if (optionalContentConfig) {\n      const levelData = optionalContentConfig.getOrder();\n      console.log(levelData);\n      const layerIds = levelData.filter((groupId) => typeof groupId !== 'object');\n      return layerIds.map((layerId) => {\n        const config = optionalContentConfig.getGroup(layerId);\n        return {\n          layerId: layerId,\n          name: config.name,\n          visible: config.visible,\n        } as PdfLayer;\n      });\n    }\n    return undefined;\n  }\n\n  public async toggleLayer(layerId: string): Promise<void> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const optionalContentConfig = await PDFViewerApplication.pdfViewer.optionalContentConfigPromise;\n    if (optionalContentConfig) {\n      let isVisible = optionalContentConfig.isVisible(layerId);\n      const checkbox = document.querySelector(`input[id='${layerId}']`);\n      if (checkbox) {\n        isVisible = (checkbox as HTMLInputElement).checked;\n        (checkbox as HTMLInputElement).checked = !isVisible;\n      }\n      optionalContentConfig.setVisibility(layerId, !isVisible);\n      PDFViewerApplication.eventBus.dispatch('optionalcontentconfig', {\n        source: this,\n        promise: Promise.resolve(optionalContentConfig),\n      });\n    }\n  }\n\n  public scrollPageIntoView(pageNumber: number, pageSpot?: { top?: number | string; left?: number | string }): void {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const viewer = PDFViewerApplication.pdfViewer as any;\n    viewer.scrollPagePosIntoView(pageNumber, pageSpot);\n  }\n}\n","import { isPlatformBrowser, Location, PlatformLocation } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Inject,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  PLATFORM_ID,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { Annotation } from './Annotation';\nimport { PdfDocumentLoadedEvent } from './events/document-loaded-event';\nimport { FileInputChanged } from './events/file-input-changed';\nimport { FindResult, FindResultMatchesCount, FindState } from './events/find-result';\nimport { HandtoolChanged } from './events/handtool-changed';\nimport { PageNumberChange } from './events/page-number-change';\nimport { PageRenderEvent } from './events/page-render-event';\nimport { PageRenderedEvent } from './events/page-rendered-event';\nimport { PagesLoadedEvent } from './events/pages-loaded-event';\nimport { PagesRotationEvent } from './events/pages-rotation-event';\nimport { PdfDownloadedEvent } from './events/pdf-downloaded-event';\nimport { PdfLoadedEvent } from './events/pdf-loaded-event';\nimport { PdfLoadingStartsEvent } from './events/pdf-loading-starts-event';\nimport { PdfThumbnailDrawnEvent } from './events/pdf-thumbnail-drawn-event';\nimport { ProgressBarEvent } from './events/progress-bar-event';\nimport { ScaleChangingEvent } from './events/scale-changing-event';\nimport { SidebarviewChange } from './events/sidebarview-changed';\nimport { TextLayerRenderedEvent } from './events/textlayer-rendered';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer.service';\nimport { PdfBackground } from './options/pdf-background';\nimport { PdfCursorTools } from './options/pdf-cursor-tools';\nimport { getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\nimport { PageViewModeType, ScrollModeChangedEvent, ScrollModeType } from './options/pdf-viewer';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { ServiceWorkerOptionsType } from './options/service-worker-options';\nimport { VerbosityLevel } from './options/verbosity-level';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { PDFNotificationService } from './pdf-notification-service';\nimport { PinchOnMobileSupport } from './pinch-on-mobile-support';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { UnitToPx } from './unit-to-px';\n\ndeclare const ServiceWorkerOptions: ServiceWorkerOptionsType; // defined in viewer.js\ndeclare class ResizeObserver {\n  constructor(param: () => void);\n  public observe(div: HTMLElement);\n}\n\ninterface ElementAndPosition {\n  element: HTMLElement;\n  x: number;\n  y: number;\n}\n\nexport interface FormDataType {\n  [fieldName: string]: string | number | boolean | string[];\n}\n\n@Component({\n  selector: 'ngx-extended-pdf-viewer',\n  templateUrl: './ngx-extended-pdf-viewer.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxExtendedPdfViewerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n  public static ngxExtendedPdfViewerInitialized = false;\n  public ngxExtendedPdfViewerIncompletelyInitialized = true;\n\n  /**\n   * The dummy components are inserted automatically when the user customizes the toolbar\n   * without adding every original toolbar item. Without the dummy components, the\n   * initialization code of pdf.js crashes because it assume that every standard widget is there.\n   */\n  @ViewChild(PdfDummyComponentsComponent)\n  public dummyComponents: PdfDummyComponentsComponent;\n\n  @ViewChild('root')\n  public root: ElementRef;\n\n  private pinchOnMobileSupport: PinchOnMobileSupport | undefined;\n\n  /* UI templates */\n  @Input()\n  public customFindbarInputArea: TemplateRef<any> | undefined;\n\n  @Input()\n  public customToolbar: TemplateRef<any> | undefined;\n\n  @Input()\n  public customFindbar: TemplateRef<any> | undefined;\n\n  @Input()\n  public customFindbarButtons: TemplateRef<any> | undefined;\n\n  @Input()\n  public customPdfViewer: TemplateRef<any> | undefined;\n\n  @Input()\n  public customSecondaryToolbar: TemplateRef<any> | undefined;\n\n  @Input()\n  public customSidebar: TemplateRef<any> | undefined;\n\n  @Input()\n  public customThumbnail: TemplateRef<any> | undefined;\n\n  @Input()\n  public customFreeFloatingBar: TemplateRef<any> | undefined;\n\n  @Input()\n  public showFreeFloatingBar = true;\n\n  @Input()\n  public enableDragAndDrop = true;\n\n  @Input()\n  public formData: FormDataType = {};\n\n  /** Maps the internal ids of the annotations of pdf.js to their field name */\n  private formIdToFieldName = {};\n  private formRadioButtonValueToId = {};\n\n  @Output()\n  public formDataChange = new EventEmitter<FormDataType>();\n\n  public _pageViewMode: PageViewModeType = 'multiple';\n\n  public baseHref: string;\n\n  public get pageViewMode(): PageViewModeType {\n    return this._pageViewMode;\n  }\n\n  @Input()\n  public set pageViewMode(viewMode: PageViewModeType) {\n    this._pageViewMode = viewMode;\n    if (viewMode === 'infinite-scroll') {\n      this.scrollMode = ScrollModeType.vertical;\n      this.spread = 'off';\n    } else if (viewMode !== 'multiple') {\n      this.scrollMode = ScrollModeType.vertical;\n    }\n    if (viewMode === 'single') {\n      // since pdf.js, our custom single-page-mode has been replaced by the standard scrollMode=\"page\"\n      this.scrollMode = ScrollModeType.page;\n      this._pageViewMode = 'multiple';\n    }\n    if (viewMode === 'book') {\n      this.showBorders = false;\n    }\n  }\n\n  @Output()\n  public progress = new EventEmitter<ProgressBarEvent>();\n\n  @ViewChild('pdfSecondaryToolbarComponent')\n  private secondaryToolbarComponent: PdfSecondaryToolbarComponent;\n\n  @ViewChild('pdfsidebar')\n  private sidebarComponent: PdfSidebarComponent;\n\n  /* regular attributes */\n\n  private _src: string | ArrayBuffer | Uint8Array | { range: any } | undefined;\n\n  @Output()\n  public srcChange = new EventEmitter<string>();\n\n  @Input()\n  public scrollMode: ScrollModeType | undefined = undefined;\n\n  @Output()\n  public scrollModeChange = new EventEmitter<ScrollModeType>();\n\n  @Input()\n  public authorization: Object | undefined = undefined;\n\n  @Input()\n  public httpHeaders: Object | undefined = undefined;\n\n  @Input()\n  public contextMenuAllowed = true;\n\n  @Output()\n  public afterPrint = new EventEmitter<void>();\n\n  @Output()\n  public beforePrint = new EventEmitter<void>();\n\n  @Output()\n  public currentZoomFactor = new EventEmitter<number>();\n\n  /** This field stores the previous zoom level if the page is enlarged with a double-tap or double-click */\n  private previousZoom: string | number | undefined;\n\n  @Input()\n  public enablePrint = true;\n\n  /**\n   * Number of milliseconds to wait between initializing the PDF viewer and loading the PDF file.\n   * Most users can let this parameter safely at it's default value of zero.\n   * Set this to 1000 or higher if you run into timing problems (typically caused by loading the locale files\n   * after the PDF files, so they are not available when the PDF viewer is initialized).\n   */\n  @Input()\n  public delayFirstView = 0;\n\n  /** store the timeout id so it can be canceled if user leaves the page before the PDF is shown */\n  private initTimeout: any;\n\n  /** How many log messages should be printed?\n   * Legal values: VerbosityLevel.INFOS (= 5), VerbosityLevel.WARNINGS (= 1), VerbosityLevel.ERRORS (= 0) */\n  @Input()\n  public logLevel = VerbosityLevel.WARNINGS;\n\n  @Input()\n  public enablePinchOnMobile = false;\n\n  /** Use the minified (minifiedJSLibraries=\"true\", which is the default) or the user-readable pdf.js library (minifiedJSLibraries=\"false\") */\n  @Input()\n  public minifiedJSLibraries = true;\n\n  public primaryMenuVisible = true;\n\n  /** option to increase (or reduce) print resolution. Default is 150 (dpi). Sensible values\n   * are 300, 600, and 1200. Note the increase memory consumption, which may even result in a browser crash. */\n  @Input()\n  public printResolution = null;\n\n  @Input()\n  public rotation: 0 | 90 | 180 | 270;\n\n  @Output()\n  public rotationChange = new EventEmitter<0 | 90 | 180 | 270>();\n\n  public hasSignature: boolean;\n\n  @Input()\n  public set src(url: string | ArrayBuffer | Blob | Uint8Array | URL | { range: any }) {\n    if (url instanceof Uint8Array) {\n      this._src = url.buffer;\n    } else if (url instanceof URL) {\n      this._src = url.toString();\n    } else if (typeof Blob !== 'undefined' && url instanceof Blob) {\n      // additional check introduced to support server side rendering\n      const reader = new FileReader();\n      reader.onloadend = () => {\n        setTimeout(() => {\n          this.src = new Uint8Array(reader.result as ArrayBuffer);\n          if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n            if (this.ngxExtendedPdfViewerIncompletelyInitialized) {\n              this.openPDF();\n            } else {\n              (async () => await this.openPDF2())();\n            }\n            // else openPDF is called later, so we do nothing to prevent loading the PDF file twice\n          }\n        });\n      };\n      reader.readAsArrayBuffer(url);\n    } else if (typeof url === 'string') {\n      this._src = url;\n      if (url.length > 980) {\n        // minimal length of a base64 encoded PDF\n        if (url.length % 4 === 0) {\n          if (/^[a-zA-Z\\d\\/+]+={0,2}$/.test(url)) {\n            console.error('The URL looks like a base64 encoded string. If so, please use the attribute [base64Src] instead of [src]');\n          }\n        }\n      }\n    } else {\n      (this._src as any) = url;\n    }\n  }\n\n  @Input()\n  public set base64Src(base64: string | null | undefined) {\n    if (base64) {\n      const binary_string = window.atob(base64);\n      const len = binary_string.length;\n      const bytes = new Uint8Array(len);\n      for (let i = 0; i < len; i++) {\n        bytes[i] = binary_string.charCodeAt(i);\n      }\n      this.src = bytes.buffer;\n    } else {\n      this._src = undefined;\n    }\n  }\n\n  /**\n   * The combination of height, minHeight, and autoHeight ensures the PDF height of the PDF viewer is calculated correctly when the height is a percentage.\n   * By default, many CSS frameworks make a div with 100% have a height or zero pixels. checkHeigth() fixes this.\n   */\n  private autoHeight = false;\n\n  @Input()\n  public minHeight: string | undefined = undefined;\n\n  private _height = '100%';\n\n  @Input()\n  public set height(h: string) {\n    this.minHeight = undefined;\n    this.autoHeight = false;\n    if (h) {\n      this._height = h;\n    } else {\n      this.height = '100%';\n    }\n    setTimeout(() => {\n      this.checkHeight();\n    });\n  }\n\n  public get height() {\n    return this._height;\n  }\n\n  /**\n   * If this flag is true, this components adds a link to the locale assets. The pdf viewer\n   * sees this link and uses it to load the locale files automatically.\n   * @param useBrowserLocale boolean\n   */\n  @Input()\n  public useBrowserLocale = false;\n\n  @Input()\n  public forceUsingLegacyES5 = false;\n\n  @Input()\n  public backgroundColor = '#e8e8eb';\n\n  @Input()\n  public pdfBackground: PdfBackground = undefined;\n\n  @Input()\n  public pdfBackgroundColorToReplace: string | ((page: number, pageLabel: string) => string | undefined) | undefined = '#ffffff';\n\n  /** Allows the user to define the name of the file after clicking \"download\" */\n  @Input()\n  public filenameForDownload: string | undefined = undefined;\n\n  /** Allows the user to disable the keyboard bindings completely */\n  @Input()\n  public ignoreKeyboard = false;\n\n  /** Allows the user to disable a list of key bindings. */\n  @Input()\n  public ignoreKeys: Array<string> = [];\n\n  /** Allows the user to enable a list of key bindings explicitly. If this property is set, every other key binding is ignored. */\n  @Input()\n  public acceptKeys: Array<string> = [];\n\n  /** Allows the user to put the viewer's svg images into an arbitrary folder */\n  @Input()\n  public imageResourcesPath = './' + pdfDefaultOptions.assetsFolder + '/images/';\n\n  /** Allows the user to put their locale folder into an arbitrary folder */\n  @Input()\n  public localeFolderPath = './' + pdfDefaultOptions.assetsFolder + '/locale';\n\n  /** Override the default locale. This must be the complete locale name, such as \"es-ES\". The string is allowed to be all lowercase.\n   */\n  @Input()\n  public language: string | undefined = undefined;\n\n  /** By default, listening to the URL is deactivated because often the anchor tag is used for the Angular router */\n  @Input()\n  public listenToURL = false;\n\n  /** Navigate to a certain \"named destination\" */\n  @Input()\n  public nameddest: string | undefined = undefined;\n\n  /** allows you to pass a password to read password-protected files */\n  @Input()\n  public password: string | undefined = undefined;\n\n  public _showSidebarButton = true;\n\n  public viewerPositionTop = '32px';\n\n  /** pdf.js can show signatures, but fails to verify them. So they are switched off by default.\n   * Set \"[showUnverifiedSignatures]\"=\"true\" to display e-signatures nonetheless.\n   */\n  @Input()\n  public showUnverifiedSignatures = false;\n\n  @Input()\n  public startTabindex: number | undefined;\n\n  public get showSidebarButton() {\n    return this._showSidebarButton;\n  }\n  @Input()\n  public set showSidebarButton(show: boolean) {\n    this._showSidebarButton = show;\n    const isIE = /msie\\s|trident\\//i.test(window.navigator.userAgent);\n    let factor = 1;\n    if (isIE) {\n      factor = Number((this._mobileFriendlyZoom || '100').replace('%', '')) / 100;\n    }\n\n    if (this._showSidebarButton) {\n      this.findbarLeft = (68 * factor).toString() + 'px';\n    } else {\n      this.findbarLeft = '0px';\n    }\n  }\n\n  @Input()\n  public sidebarVisible: boolean | undefined = undefined;\n\n  @Output()\n  public sidebarVisibleChange = new EventEmitter<boolean>();\n\n  @Input()\n  public showFindButton: boolean | undefined = undefined;\n\n  @Input()\n  public showFindHighlightAll = true;\n\n  @Input()\n  public showFindMatchCase = true;\n\n  @Input()\n  public showFindCurrentPageOnly = true;\n\n  @Input()\n  public showFindPageRange = true;\n\n  @Input()\n  public showFindEntireWord = true;\n\n  @Input()\n  public showFindEntirePhrase = true;\n\n  @Input()\n  public showFindIgnoreAccents = true;\n\n  @Input()\n  public showFindFuzzySearch = true;\n\n  @Input()\n  public showFindResultsCount = true;\n\n  @Input()\n  public showFindMessages = true;\n\n  @Input()\n  public showPagingButtons = true;\n  @Input()\n  public showZoomButtons = true;\n  @Input()\n  public showPresentationModeButton = false;\n  @Input()\n  public showOpenFileButton = true;\n  @Input()\n  public showPrintButton = true;\n  @Input()\n  public showDownloadButton = true;\n  @Input()\n  public showBookmarkButton = true;\n\n  @Input()\n  public theme: 'dark' | 'light' | 'custom' | string = 'light';\n\n  @Input()\n  public formTheme: 'dark' | 'light' | 'custom' | string = 'light';\n\n  @Input()\n  public showToolbar = true;\n\n  @Input()\n  public showSecondaryToolbarButton = true;\n\n  /** Set by the event (secondaryMenuIsEmpty) */\n  public hideKebabMenuForSecondaryToolbar = false;\n\n  @Input()\n  public showRotateButton = true;\n  @Input()\n  public handTool = true;\n  @Output()\n  public handToolChange = new EventEmitter<boolean>();\n\n  @Input()\n  public showHandToolButton = false;\n\n  private _showScrollingButton = true;\n\n  public get showScrollingButton() {\n    if (this.pageViewMode === 'multiple') {\n      return this._showScrollingButton;\n    }\n    return false;\n  }\n\n  @Input()\n  public set showScrollingButton(val: any) {\n    this._showScrollingButton = val;\n  }\n\n  private _showSpreadButton = true;\n\n  public get showSpreadButton() {\n    if (this.pageViewMode !== 'infinite-scroll') {\n      return this._showSpreadButton;\n    }\n    return false;\n  }\n\n  @Input()\n  public set showSpreadButton(val: any) {\n    this._showSpreadButton = val;\n  }\n\n  @Input()\n  public showPropertiesButton = true;\n  @Input()\n  public showBorders = true;\n\n  @Input()\n  public spread: 'off' | 'even' | 'odd';\n\n  @Output()\n  public spreadChange = new EventEmitter<'off' | 'even' | 'odd'>();\n\n  @Output()\n  public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n  private _page: number | undefined = undefined;\n\n  public get page(): number | undefined {\n    return this._page;\n  }\n\n  @Input()\n  public set page(p: number | undefined) {\n    if (p) {\n      // silently cope with strings\n      this._page = Number(p);\n    } else {\n      this._page = undefined;\n    }\n  }\n\n  @Output()\n  public pageChange = new EventEmitter<number | undefined>();\n\n  @Input()\n  public pageLabel: string | undefined = undefined;\n\n  @Output()\n  public pageLabelChange = new EventEmitter<string | undefined>();\n\n  @Output()\n  public pagesLoaded = new EventEmitter<PagesLoadedEvent>();\n\n  @Output()\n  public pageRender = new EventEmitter<PageRenderEvent>();\n\n  @Output()\n  public pageRendered = new EventEmitter<PageRenderedEvent>();\n\n  @Output()\n  public pdfDownloaded = new EventEmitter<PdfDownloadedEvent>();\n\n  @Output()\n  public pdfLoaded = new EventEmitter<PdfLoadedEvent>();\n\n  @Output()\n  public pdfLoadingStarts = new EventEmitter<PdfLoadingStartsEvent>();\n\n  @Output()\n  public pdfLoadingFailed = new EventEmitter<Error>();\n\n  @Input()\n  public textLayer: boolean | undefined = undefined;\n\n  @Output()\n  public textLayerRendered = new EventEmitter<TextLayerRenderedEvent>();\n\n  @Output()\n  public updateFindMatchesCount = new EventEmitter<FindResultMatchesCount>();\n\n  @Output()\n  public updateFindState = new EventEmitter<FindState>();\n\n  /** Legal values: undefined, 'auto', 'page-actual', 'page-fit', 'page-width', or '50' (or any other percentage) */\n  @Input()\n  public zoom: string | number | undefined = undefined;\n\n  @Output()\n  public zoomChange = new EventEmitter<string | number | undefined>();\n\n  @Input()\n  public zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 1, 1.25, 1.5, 2, 3, 4];\n\n  @Input()\n  public maxZoom = 10;\n\n  @Input()\n  public minZoom = 0.1;\n\n  /** This attribute allows you to increase the size of the UI elements so you can use them on small mobile devices.\n   * This attribute is a string with a percent character at the end (e.g. \"150%\").\n   */\n  @Input() _mobileFriendlyZoom: string = '100%';\n\n  public mobileFriendlyZoomScale = 1;\n\n  @Input()\n  public wheelAction: 'scroll' | 'zoom' = 'scroll';\n\n  public toolbarMarginTop = '0px';\n\n  public toolbarWidth = '100%';\n\n  private toolbar: HTMLElement | undefined = undefined;\n  public onToolbarLoaded(toolbarElement: HTMLElement): void {\n    this.toolbar = toolbarElement;\n  }\n\n  public toolbarWidthInPixels = 100;\n\n  public secondaryToolbarTop: string | undefined = undefined;\n\n  public sidebarPositionTop: string | undefined = undefined;\n\n  // dirty IE11 hack - temporary solution\n  public findbarTop: string | undefined = undefined;\n\n  // dirty IE11 hack - temporary solution\n  public findbarLeft: string | undefined = undefined;\n\n  // Additional PDF Form Field Types #567: Used to store the exported values of radio and checkbox buttons\n  public buttonValues: any = {};\n\n  public get mobileFriendlyZoom() {\n    return this._mobileFriendlyZoom;\n  }\n\n  public get pdfJsVersion(): string {\n    return getVersionSuffix(pdfDefaultOptions.assetsFolder);\n  }\n\n  /**\n   * This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n   * This attribute is a string with a percent character at the end (e.g. \"150%\").\n   */\n  @Input()\n  public set mobileFriendlyZoom(zoom: string) {\n    // tslint:disable-next-line:triple-equals - the type conversion is intended\n    if (zoom == 'true') {\n      zoom = '150%';\n      // tslint:disable-next-line:triple-equals - the type conversion is intended\n    } else if (zoom == 'false' || zoom === undefined || zoom === null) {\n      zoom = '100%';\n    }\n    this._mobileFriendlyZoom = zoom;\n    let factor = 1;\n    if (!String(zoom).includes('%')) {\n      zoom = 100 * Number(zoom) + '%';\n    }\n    factor = Number((zoom || '100').replace('%', '')) / 100;\n    this.mobileFriendlyZoomScale = factor;\n    this.toolbarWidth = (100 / factor).toString() + '%';\n    this.toolbarMarginTop = (factor - 1) * 16 + 'px';\n\n    setTimeout(() => this.calcViewerPositionTop());\n  }\n\n  private shuttingDown = false;\n\n  public calcViewerPositionTop(): void {\n    if (this.toolbar === undefined) {\n      return;\n    }\n    let top = this.toolbar.getBoundingClientRect().height;\n    this.viewerPositionTop = top + 'px';\n\n    const factor = top / 33;\n\n    this.sidebarPositionTop = (33 + 33 * (factor - 1)).toString() + 'px';\n    this.secondaryToolbarTop = (33 + 38 * (factor - 1)).toString() + 'px';\n    this.findbarTop = (34 + 54 * (factor - 1)).toString() + 'px';\n\n    const findButton = document.getElementById('viewFind');\n    if (findButton) {\n      const containerPositionLeft = this.toolbar.getBoundingClientRect().left;\n      const findButtonPosition = findButton.getBoundingClientRect();\n      const left = findButtonPosition.left - containerPositionLeft;\n      this.findbarLeft = left + 'px';\n    } else if (this.showSidebarButton) {\n      this.findbarLeft = 34 + (32 * factor).toString() + 'px';\n    } else {\n      this.findbarLeft = '0px';\n    }\n  }\n\n  constructor(\n    private ngZone: NgZone,\n    @Inject(PLATFORM_ID) private platformId,\n    private notificationService: PDFNotificationService,\n    private location: Location,\n    private elementRef: ElementRef,\n    private platformLocation: PlatformLocation,\n    private cdr: ChangeDetectorRef,\n    private service: NgxExtendedPdfViewerService\n  ) {\n    this.baseHref = this.platformLocation.getBaseHrefFromDOM();\n    this.service.recalculateSize$.subscribe(() => this.onResize());\n  }\n\n  private iOSVersionRequiresES5(): boolean {\n    const match = navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n    if (match !== undefined && match !== null) {\n      return parseInt(match[1], 10) < 14;\n    }\n\n    return false;\n  }\n\n  private async needsES5(): Promise<boolean> {\n    const isIE = !!(<any>window).MSInputMethodContext && !!(<any>document).documentMode;\n    const isEdge = /Edge\\/\\d./i.test(navigator.userAgent);\n    const isIOs13OrBelow = this.iOSVersionRequiresES5();\n    let needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n    if (needsES5 || isIE || isEdge || isIOs13OrBelow || this.forceUsingLegacyES5) {\n      return true;\n    }\n    return !(await this.supportsOptionalChaining());\n  }\n\n  private supportsOptionalChaining(): Promise<boolean> {\n    return new Promise((resolve) => {\n      const support = (<any>window).supportsOptionalChaining;\n      support !== undefined ? resolve(support) : resolve(this.addScriptOpChainingSupport());\n    });\n  }\n\n  private addScriptOpChainingSupport(): Promise<boolean> {\n    return new Promise((resolve) => {\n      const script = this.createScriptElement(pdfDefaultOptions.assetsFolder + '/op-chaining-support.js');\n      script.onload = () => {\n        script.remove();\n        resolve((<any>window).supportsOptionalChaining as boolean);\n      };\n      script.onerror = () => {\n        script.remove();\n        (<any>window).supportsOptionalChaining = false;\n        resolve(false);\n      };\n\n      document.body.appendChild(script);\n    });\n  }\n\n  private createScriptElement(sourcePath: string): HTMLScriptElement {\n    const script = document.createElement('script');\n    script.async = true;\n    script.type = 'text/javascript';\n    script.src = this.location.normalize(sourcePath);\n\n    return script;\n  }\n\n  private getPdfJsPath(artifact: 'pdf' | 'viewer', needsES5: boolean) {\n    const suffix = this.minifiedJSLibraries ? '.min.js' : '.js';\n    const assets = pdfDefaultOptions.assetsFolder;\n    const versionSuffix = getVersionSuffix(assets);\n    const artifactPath = `/${artifact}-`;\n    const es5 = needsES5 ? '-es5' : '';\n\n    return assets + artifactPath + versionSuffix + es5 + suffix;\n  }\n\n  private loadViewer(): void {\n    window['ngxZone'] = this.ngZone;\n    this.ngZone.runOutsideAngular(() => {\n      if (!window['pdfjs-dist/build/pdf']) {\n        setTimeout(() => this.loadViewer(), 25);\n      } else {\n        this.needsES5().then((needsES5) => {\n          const viewerPath = this.getPdfJsPath('viewer', needsES5);\n          const script = this.createScriptElement(viewerPath);\n          // script.onload = async () => await this.addFeatures(); // DEBUG CODE!!!\n          document.getElementsByTagName('head')[0].appendChild(script);\n        });\n      }\n    });\n  }\n\n  private addFeatures(): Promise<void> {\n    return new Promise((resolve) => {\n      const script = this.createScriptElement(pdfDefaultOptions.assetsFolder + '/additional-features.js');\n      script.onload = () => {\n        script.remove();\n      };\n      script.onerror = () => {\n        script.remove();\n        resolve();\n      };\n\n      document.body.appendChild(script);\n    });\n  }\n\n  ngOnInit() {\n    window['setNgxExtendedPdfViewerSource'] = (url: string) => {\n      this._src = url;\n      console.log(url);\n      this.srcChange.emit(url);\n    };\n\n    if (isPlatformBrowser(this.platformId)) {\n      const link = document.createElement('link');\n      link.href = this.localeFolderPath + '/locale.properties';\n      link.setAttribute('origin', 'ngx-extended-pdf-viewer');\n      link.rel = 'resource';\n      link.type = 'application/l10n';\n      const widget: HTMLElement = this.elementRef.nativeElement;\n      widget.appendChild(link);\n      (window as any).getFormValue = (key: string) => this.getFormValue(key);\n      (window as any).setFormValue = (key: string, value: string) => this.setFormValue(key, value);\n      (window as any).registerAcroformAnnotations = (sortedAnnotations) => this.registerAcroformAnnotations(sortedAnnotations);\n      (window as any).assignFormIdAndFieldName = (key: string, fieldName: string, radioButtonField?: string) =>\n        this.assignFormIdAndFieldName(key, fieldName, radioButtonField);\n\n      this.loadPdfJs();\n    }\n  }\n\n  private loadPdfJs() {\n    window['ngxZone'] = this.ngZone;\n    this.ngZone.runOutsideAngular(() => {\n      if (!window['pdfjs-dist/build/pdf']) {\n        this.needsES5().then((needsES5) => {\n          if (needsES5) {\n            if (!pdfDefaultOptions.needsES5) {\n              console.log(\n                \"If you see the error message \\\"expected expression, got '='\\\" above: you can safely ignore it as long as you know what you're doing. It means your browser is out-of-date. Please update your browser to benefit from the latest security updates and to enjoy a faster PDF viewer.\"\n              );\n            }\n            pdfDefaultOptions.needsES5 = true;\n            console.log('Using the ES5 version of the PDF viewer. Your PDF files show faster if you update your browser.');\n          }\n          window['ngxZone'] = this.ngZone;\n          if (this.minifiedJSLibraries) {\n            if (!pdfDefaultOptions.workerSrc().endsWith('.min.js')) {\n              const src = pdfDefaultOptions.workerSrc();\n              pdfDefaultOptions.workerSrc = () => src.replace('.js', '.min.js');\n            }\n          }\n          const pdfJsPath = this.getPdfJsPath('pdf', needsES5);\n          const script = this.createScriptElement(pdfJsPath);\n          document.getElementsByTagName('head')[0].appendChild(script);\n        });\n      }\n      if (!(window as any).webViewerLoad) {\n        this.loadViewer();\n      }\n    });\n  }\n\n  ngAfterViewInit() {\n    if (typeof window !== 'undefined') {\n      if (!this.shuttingDown) {\n        // hurried users sometimes reload the PDF before it has finished initializing\n        if ((window as any).webViewerLoad) {\n          this.ngZone.runOutsideAngular(() => this.doInitPDFViewer());\n        } else {\n          setTimeout(() => this.ngAfterViewInit(), 50);\n        }\n      }\n    }\n  }\n\n  private assignTabindexes() {\n    if (this.startTabindex) {\n      const r = this.root.nativeElement.cloneNode(true) as HTMLElement;\n      r.classList.add('offscreen');\n      this.showElementsRecursively(r);\n      document.body.appendChild(r);\n      const elements = this.collectElementPositions(r, this.root.nativeElement, []);\n      document.body.removeChild(r);\n      const sorted = elements.sort((a, b) => {\n        if (a.y - b.y > 15) {\n          return 1;\n        }\n        if (b.y - a.y > 15) {\n          return -1;\n        }\n        return a.x - b.x;\n      });\n      for (let i = 0; i < sorted.length; i++) {\n        sorted[i].element.tabIndex = this.startTabindex + i;\n      }\n    }\n  }\n\n  private showElementsRecursively(root: Element): void {\n    root.classList.remove('hidden');\n    root.classList.remove('invisible');\n    root.classList.remove('hiddenXXLView');\n    root.classList.remove('hiddenXLView');\n    root.classList.remove('hiddenLargeView');\n    root.classList.remove('hiddenMediumView');\n    root.classList.remove('hiddenSmallView');\n    root.classList.remove('hiddenTinyView');\n    root.classList.remove('visibleXXLView');\n    root.classList.remove('visibleXLView');\n    root.classList.remove('visibleLargeView');\n    root.classList.remove('visibleMediumView');\n    root.classList.remove('visibleSmallView');\n    root.classList.remove('visibleTinyView');\n\n    if (root instanceof HTMLButtonElement || root instanceof HTMLAnchorElement || root instanceof HTMLInputElement || root instanceof HTMLSelectElement) {\n      return;\n    } else if (root.childElementCount > 0) {\n      for (let i = 0; i < root.childElementCount; i++) {\n        const c = root.children.item(i);\n        if (c) {\n          this.showElementsRecursively(c);\n        }\n      }\n    }\n  }\n\n  private collectElementPositions(copy: Element, original: Element, elements: Array<ElementAndPosition>): Array<ElementAndPosition> {\n    if (copy instanceof HTMLButtonElement || copy instanceof HTMLAnchorElement || copy instanceof HTMLInputElement || copy instanceof HTMLSelectElement) {\n      const rect = copy.getBoundingClientRect();\n      const elementAndPos = {\n        element: original,\n        x: Math.round(rect.left),\n        y: Math.round(rect.top),\n      } as ElementAndPosition;\n      elements.push(elementAndPos);\n    } else if (copy.childElementCount > 0) {\n      for (let i = 0; i < copy.childElementCount; i++) {\n        const c = copy.children.item(i);\n        const o = original.children.item(i);\n        if (c && o) {\n          elements = this.collectElementPositions(c, o, elements);\n        }\n      }\n    }\n    return elements;\n  }\n\n  private doInitPDFViewer() {\n    if (typeof window === 'undefined') {\n      return;\n    }\n    const langLinks = document.querySelectorAll('link[type=\"application/l10n\"]');\n    const langCount = langLinks.length;\n\n    if (langCount === 0) {\n      const dict = document.querySelector('script[type=\"application/l10n\"]');\n      if (!dict) {\n        if (!this.useBrowserLocale) {\n          console.error(\n            // tslint:disable-next-line:quotemark\n            \"If you set the attribute 'useBrowserLocale' to false, you must provide the translations yourself in a script or link tag.\"\n          );\n          console.error('The easiest way to do this is to add them to the index.html.');\n        }\n      } else if (this.useBrowserLocale) {\n        console.error(\n          // tslint:disable-next-line:quotemark\n          \"Please set the attribute 'useBrowserLocale' to false if you provide the translations yourself in a script or link tag.\"\n        );\n      }\n    } else if (this.useBrowserLocale) {\n      const o = langLinks[0].attributes['origin'];\n      if (o && o.value !== 'ngx-extended-pdf-viewer') {\n        console.error(\n          // tslint:disable-next-line:quotemark\n          \"Please set the attribute 'useBrowserLocale' to false if you provide the translations yourself in a script or link tag.\"\n        );\n      }\n    }\n    const callback = () => {\n      document.removeEventListener('localized', callback);\n      this.initTimeout = setTimeout(() => {\n        if (!this.shuttingDown) {\n          // hurried users sometimes reload the PDF before it has finished initializing\n          this.calcViewerPositionTop();\n          this.afterLibraryInit();\n          this.openPDF();\n          this.assignTabindexes();\n        }\n      }, this.delayFirstView);\n    };\n\n    window.addEventListener('afterprint', () => {\n      this.afterPrint.emit();\n    });\n\n    window.addEventListener('beforeprint', () => {\n      this.beforePrint.emit();\n    });\n\n    document.addEventListener('localized', callback);\n\n    if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"You're trying to open two instances of the PDF viewer. Most likely, this will result in errors.\");\n    }\n    const onLoaded = () => {\n      this.overrideDefaultSettings();\n      document.removeEventListener('webviewerloaded', onLoaded);\n      if (this.enablePinchOnMobile) {\n        this.pinchOnMobileSupport = new PinchOnMobileSupport(this.ngZone);\n      }\n    };\n    document.addEventListener('webviewerloaded', onLoaded);\n\n    this.activateTextlayerIfNecessary(null);\n\n    setTimeout(() => {\n      if (!this.shuttingDown) {\n        // hurried users sometimes reload the PDF before it has finished initializing\n        // This initializes the webviewer, the file may be passed in to it to initialize the viewer with a pdf directly\n        this.onResize();\n        this.primaryMenuVisible = this.showToolbar;\n        const hideSecondaryMenu = this.hideKebabMenuForSecondaryToolbar && !this.showSecondaryToolbarButton;\n\n        if (hideSecondaryMenu) {\n          if (!this.isPrimaryMenuVisible()) {\n            this.primaryMenuVisible = false;\n          }\n        }\n        this.dummyComponents.addMissingStandardWidgets();\n        this.ngZone.runOutsideAngular(() => (<any>window).webViewerLoad());\n\n        const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n        PDFViewerApplication.appConfig.defaultUrl = ''; // IE bugfix\n        if (this.filenameForDownload) {\n          PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n        }\n        const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n\n        PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop);\n        let language = this.language === '' ? undefined : this.language;\n        if (!language) {\n          language = navigator.language;\n        }\n        PDFViewerApplicationOptions.set('locale', language);\n        PDFViewerApplicationOptions.set('imageResourcesPath', this.imageResourcesPath);\n        PDFViewerApplicationOptions.set('minZoom', this.minZoom);\n        PDFViewerApplicationOptions.set('maxZoom', this.maxZoom);\n        PDFViewerApplicationOptions.set('pageViewMode', this.pageViewMode);\n        PDFViewerApplicationOptions.set('verbosity', this.logLevel);\n        PDFViewerApplicationOptions.set('initialZoom', this.zoom);\n        PDFViewerApplicationOptions.set('pdfBackgroundColor', this.pdfBackground);\n        PDFViewerApplicationOptions.set('pdfBackgroundColorToReplace', this.pdfBackgroundColorToReplace);\n\n        PDFViewerApplication.isViewerEmbedded = true;\n        if (PDFViewerApplication.printKeyDownListener) {\n          window.addEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n        }\n\n        const pc = document.getElementById('printContainer');\n        if (pc) {\n          document.getElementsByTagName('body')[0].appendChild(pc);\n        }\n      }\n    }, 0);\n  }\n\n  /** Notifies every widget that implements onLibraryInit() that the PDF viewer objects are available */\n  private afterLibraryInit() {\n    this.notificationService.onPDFJSInit.next();\n  }\n\n  public checkHeight(): void {\n    if (typeof document !== 'undefined') {\n      const container = document.getElementsByClassName('zoom')[0] as HTMLElement;\n      if (container) {\n        if (container.clientHeight === 0) {\n          if (!this.autoHeight) {\n            console.warn(\n              \"The height of the PDF viewer widget is zero pixels. Please check the height attribute. Is there a syntax error? Or are you using a percentage with a CSS framework that doesn't support this? The height is adjusted automatedly.\"\n            );\n            this.autoHeight = true;\n          }\n        }\n        if (this.autoHeight) {\n          const available = window.innerHeight;\n          const rect = container.getBoundingClientRect();\n          const top = rect.top;\n          let maximumHeight = available - top;\n          // take the margins and paddings of the parent containers into account\n          const padding = this.calculateBorderMarging(container);\n          maximumHeight -= padding;\n          const factor = Number(this._height.replace('%', ''));\n          maximumHeight = (maximumHeight * factor) / 100;\n          if (maximumHeight > 100) {\n            this.minHeight = `${maximumHeight}px`;\n          } else {\n            this.minHeight = '100px';\n          }\n          this.cdr.markForCheck();\n        }\n      }\n    }\n  }\n\n  private calculateBorderMarging(container: HTMLElement | null): number {\n    if (container) {\n      const computedStyle = window.getComputedStyle(container);\n\n      const padding = UnitToPx.toPx(computedStyle.paddingBottom);\n      const margin = UnitToPx.toPx(computedStyle.marginBottom);\n      if (container.style.zIndex) {\n        return padding + margin;\n      }\n      return padding + margin + this.calculateBorderMarging(container.parentElement);\n    }\n    return 0;\n  }\n\n  public onSpreadChange(newSpread: 'off' | 'even' | 'odd'): void {\n    this.spreadChange.emit(newSpread);\n  }\n\n  private activateTextlayerIfNecessary(options: any): void {\n    if (this.textLayer === undefined) {\n      if (!this.handTool) {\n        if (options) {\n          options.set('textLayerMode', pdfDefaultOptions.textLayerMode);\n        }\n        this.textLayer = true;\n        if (this.showFindButton === undefined) {\n          this.showFindButton = true;\n          setTimeout(() => {\n            // todo remove this hack:\n            const viewFind = document.getElementById('viewFind') as HTMLElement;\n            if (viewFind) {\n              viewFind.classList.remove('invisible');\n            }\n            const findbar = document.getElementById('findbar') as HTMLElement;\n            if (findbar) {\n              findbar.classList.remove('invisible');\n            }\n          });\n        }\n      } else {\n        if (options) {\n          options.set('textLayerMode', this.showHandToolButton ? pdfDefaultOptions.textLayerMode : 0);\n        }\n        if (!this.showHandToolButton) {\n          if (this.showFindButton || this.showFindButton === undefined) {\n            this.ngZone.run(() => {\n              this.showFindButton = false;\n            });\n            if (this.logLevel >= VerbosityLevel.WARNINGS) {\n              console.warn(\n                // tslint:disable-next-line:max-line-length\n                'Hiding the \"find\" button because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the find button.'\n              );\n            }\n          }\n          if (this.showHandToolButton) {\n            if (this.logLevel >= VerbosityLevel.WARNINGS) {\n              console.warn(\n                // tslint:disable-next-line:max-line-length\n                'Hiding the \"hand tool / selection mode\" menu because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the the menu items.'\n              );\n              this.showHandToolButton = false;\n            }\n          }\n        }\n      }\n    } else {\n      if (this.textLayer) {\n        // todo: is this a redundant check?\n        if (options) {\n          options.set('textLayerMode', pdfDefaultOptions.textLayerMode);\n        }\n        this.textLayer = true;\n        if (this.showFindButton === undefined) {\n          this.showFindButton = true;\n          setTimeout(() => {\n            // todo remove this hack:\n            const viewFind = document.getElementById('viewFind') as HTMLElement;\n            if (viewFind) {\n              viewFind.classList.remove('invisible');\n            }\n            const findbar = document.getElementById('findbar') as HTMLElement;\n            if (findbar) {\n              findbar.classList.remove('invisible');\n            }\n          });\n        }\n      } else {\n        // todo: is the else branch dead code?\n        if (options) {\n          options.set('textLayerMode', 0);\n        }\n        this.textLayer = false;\n        if (this.showFindButton) {\n          if (this.logLevel >= VerbosityLevel.WARNINGS) {\n            // tslint:disable-next-line:max-line-length\n            console.warn('Hiding the \"find\" button because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the find button.');\n            this.ngZone.run(() => {\n              this.showFindButton = false;\n            });\n          }\n        }\n        if (this.showHandToolButton) {\n          if (this.logLevel >= VerbosityLevel.WARNINGS) {\n            console.warn(\n              // tslint:disable-next-line:max-line-length\n              'Hiding the \"hand tool / selection mode\" menu because the text layer of the PDF file is not rendered. Use [textLayer]=\"true\" to enable the the menu items.'\n            );\n            this.showHandToolButton = false;\n          }\n        }\n      }\n    }\n  }\n\n  private async overrideDefaultSettings() {\n    const options = (window as any).PDFViewerApplicationOptions as IPDFViewerApplicationOptions;\n    // tslint:disable-next-line:forin\n    for (const key in pdfDefaultOptions) {\n      options.set(key, pdfDefaultOptions[key]);\n    }\n    options.set('disablePreferences', true);\n    await this.setZoom();\n\n    options.set('ignoreKeyboard', this.ignoreKeyboard);\n    options.set('ignoreKeys', this.ignoreKeys);\n    options.set('acceptKeys', this.acceptKeys);\n    options.set('wheelAction', this.wheelAction);\n    this.activateTextlayerIfNecessary(options);\n\n    if (this.scrollMode || this.scrollMode === ScrollModeType.vertical) {\n      options.set('scrollModeOnLoad', this.scrollMode);\n    }\n\n    const sidebarVisible = this.sidebarVisible;\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n    if (sidebarVisible !== undefined) {\n      PDFViewerApplication.sidebarViewOnLoad = sidebarVisible ? 1 : 0;\n      if (PDFViewerApplication.appConfig) {\n        PDFViewerApplication.appConfig.sidebarViewOnLoad = sidebarVisible ? 1 : 0;\n      }\n      options.set('sidebarViewOnLoad', this.sidebarVisible ? 1 : 0);\n    }\n    if (this.spread === 'even') {\n      options.set('spreadModeOnLoad', 2);\n      if (PDFViewerApplication.pdfViewer) {\n        PDFViewerApplication.pdfViewer.spreadMode = 2;\n      }\n      this.onSpreadChange('even');\n    } else if (this.spread === 'odd') {\n      options.set('spreadModeOnLoad', 1);\n      if (PDFViewerApplication.pdfViewer) {\n        PDFViewerApplication.pdfViewer.spreadMode = 1;\n      }\n      this.onSpreadChange('odd');\n    } else {\n      options.set('spreadModeOnLoad', 0);\n      if (PDFViewerApplication.pdfViewer) {\n        PDFViewerApplication.pdfViewer.spreadMode = 0;\n      }\n      this.onSpreadChange('off');\n    }\n    if (this.printResolution) {\n      options.set('printResolution', this.printResolution);\n    }\n    if (this.showBorders === false) {\n      options.set('removePageBorders', !this.showBorders);\n    }\n  }\n\n  private openPDF() {\n    ServiceWorkerOptions.showUnverifiedSignatures = this.showUnverifiedSignatures;\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.enablePrint = this.enablePrint;\n    NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized = true;\n    if (this._src) {\n      this.ngxExtendedPdfViewerIncompletelyInitialized = false;\n      if (!this.listenToURL) {\n        PDFViewerApplication.pdfLinkService.setHash = function () {};\n      }\n      this.initTimeout = null;\n      this.selectCursorTool();\n\n      PDFViewerApplication.eventBus.on('textlayerrendered', (x: TextLayerRenderedEvent) => {\n        this.textLayerRendered.emit(x);\n      });\n\n      PDFViewerApplication.eventBus.on('scrollmodechanged', (x: ScrollModeChangedEvent) => {\n        this.ngZone.run(() => this.scrollModeChange.emit(x.mode));\n      });\n      PDFViewerApplication.eventBus.on('progress', (x: ProgressBarEvent) => {\n        this.progress.emit(x);\n      });\n\n      PDFViewerApplication.eventBus.on('pagesloaded', async (x: PagesLoadedEvent) => {\n        this.pagesLoaded.emit(x);\n        this.removeScrollbarInInititeScrollMode();\n        if (this.rotation !== undefined && this.rotation !== null) {\n          const r = Number(this.rotation);\n          if (r === 0 || r === 90 || r === 180 || r === 270) {\n            PDFViewerApplication.pdfViewer.pagesRotation = r;\n          }\n        }\n        setTimeout(() => {\n          if (!this.shuttingDown) {\n            // hurried users sometimes reload the PDF before it has finished initializing\n            if (this.nameddest) {\n              PDFViewerApplication.pdfLinkService.goToDestination(this.nameddest);\n            } else if (this.page) {\n              PDFViewerApplication.page = Number(this.page);\n            } else if (this.pageLabel) {\n              PDFViewerApplication.pdfViewer.currentPageLabel = this.pageLabel;\n            }\n          }\n        });\n        await this.setZoom();\n      });\n      PDFViewerApplication.eventBus.on('pagerendered', (x: PageRenderedEvent) => {\n        this.ngZone.run(() => {\n          this.pageRendered.emit(x);\n          this.removeScrollbarInInititeScrollMode();\n        });\n      });\n      PDFViewerApplication.eventBus.on('pagerender', (x: PageRenderEvent) => {\n        this.ngZone.run(() => {\n          this.pageRender.emit(x);\n        });\n      });\n\n      PDFViewerApplication.eventBus.on('download', (x: PdfDownloadedEvent) => {\n        this.ngZone.run(() => {\n          this.pdfDownloaded.emit(x);\n        });\n      });\n      PDFViewerApplication.eventBus.on('scalechanging', (x: ScaleChangingEvent) => {\n        {\n          const scale = (this.root.nativeElement as HTMLElement).querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n          let userZoomFactor = '';\n          if (scale) {\n            userZoomFactor = scale.value;\n          }\n        }\n\n        setTimeout(() => {\n          this.currentZoomFactor.emit(x.scale);\n          this.cdr.markForCheck();\n        });\n\n        const scale = (this.root.nativeElement as HTMLElement).querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n        let userZoomFactor = this.zoom;\n        if (scale) {\n          userZoomFactor = scale.value;\n        }\n        if (userZoomFactor !== 'auto' && userZoomFactor !== 'page-fit' && userZoomFactor !== 'page-actual' && userZoomFactor !== 'page-width') {\n          const before = this.zoom as number;\n          const after = x.scale * 100;\n          // ignore rounding differences\n          if (Math.abs(before - after) > 0.000001) {\n            this.zoom = after;\n            this.zoomChange.emit(x.scale * 100);\n          }\n        } else if (this.zoom !== userZoomFactor) {\n          // called when the user selects one of the text values of the zoom select dropdown\n          this.zoomChange.emit(userZoomFactor);\n        }\n      });\n\n      PDFViewerApplication.eventBus.on('rotationchanging', (x: PagesRotationEvent) => {\n        this.ngZone.run(() => {\n          this.rotationChange.emit(x.pagesRotation);\n        });\n      });\n      PDFViewerApplication.eventBus.on('fileinputchange', (x: FileInputChanged) => {\n        this.ngZone.run(() => {\n          if (x.fileInput.files && x.fileInput.files.length >= 1) {\n            // drag and drop\n            this.srcChange.emit(x.fileInput.files[0].name);\n          } else {\n            // regular file open dialog\n            const path = x.fileInput?.value?.replace('C:\\\\fakepath\\\\', '');\n            this.srcChange.emit(path);\n          }\n        });\n      });\n      PDFViewerApplication.eventBus.on('cursortoolchanged', (x: HandtoolChanged) => {\n        this.ngZone.run(() => {\n          this.handToolChange.emit(x.tool === PdfCursorTools.HAND);\n        });\n      });\n\n      PDFViewerApplication.eventBus.on('sidebarviewchanged', (x: SidebarviewChange) => {\n        this.ngZone.run(() => {\n          this.sidebarVisibleChange.emit(x.view > 0);\n          if (this.sidebarComponent) {\n            this.sidebarComponent.showToolbarWhenNecessary();\n          }\n        });\n      });\n\n      PDFViewerApplication.eventBus.on('documentloaded', (pdfLoadedEvent: PdfDocumentLoadedEvent) => {\n        this.ngZone.run(() => {\n          this.loadComplete(pdfLoadedEvent.source.pdfDocument);\n        });\n      });\n\n      const hideSidebarToolbar = () => {\n        this.ngZone.run(() => {\n          if (this.sidebarComponent) {\n            this.sidebarComponent.showToolbarWhenNecessary();\n          }\n        });\n      };\n\n      PDFViewerApplication.eventBus.on('outlineloaded', hideSidebarToolbar);\n\n      PDFViewerApplication.eventBus.on('attachmentsloaded', hideSidebarToolbar);\n\n      PDFViewerApplication.eventBus.on('layersloaded', hideSidebarToolbar);\n\n      PDFViewerApplication.eventBus.on('updatefindcontrolstate', (x: FindResult) => {\n        if (x.state === FindState.NOT_FOUND) {\n          this.updateFindMatchesCount.emit({ current: 0, total: 0 });\n        } else if (x.matchesCount.total) {\n          x.matchesCount.matches = PDFViewerApplication.findController._pageMatches;\n          x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength;\n          x.matchesCount.matchesColor = PDFViewerApplication.findController._pageMatchesColor;\n          this.updateFindMatchesCount.emit(x.matchesCount);\n        }\n\n        if (this.updateFindState) {\n          this.updateFindState.emit(x.state);\n        }\n      });\n      PDFViewerApplication.eventBus.on('updatefindmatchescount', (x: FindResult) => {\n        x.matchesCount.matches = PDFViewerApplication.findController._pageMatches;\n        x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength;\n        x.matchesCount.matchesColor = PDFViewerApplication.findController._pageMatchesColor;\n        this.updateFindMatchesCount.emit(x.matchesCount);\n      });\n\n      PDFViewerApplication.eventBus.on('pagechanging', (x: PageNumberChange) => {\n        if (!this.shuttingDown) {\n          // hurried users sometimes reload the PDF before it has finished initializing\n          this.ngZone.run(() => {\n            const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;\n            const currentPageLabel = PDFViewerApplication.pdfViewer.currentPageLabel;\n\n            if (currentPage !== this.page) {\n              this.pageChange.emit(currentPage);\n            }\n            if (currentPageLabel !== this.pageLabel) {\n              this.pageLabelChange.emit(currentPageLabel);\n            }\n          });\n        }\n      });\n\n      setTimeout(async () => await this.checkHeight(), 100);\n      // open a file in the viewer\n      if (!!this._src) {\n        const options: any = {\n          password: this.password,\n          verbosity: this.logLevel,\n        };\n        if (this._src['range']) {\n          options.range = this._src['range'];\n        }\n        if (this.httpHeaders) {\n          options.httpHeaders = this.httpHeaders;\n        }\n        if (this.authorization) {\n          options.withCredentials = true;\n          if (options.httpHeaders) {\n            if (!options.httpHeaders.Authorization) {\n              options.httpHeaders.Authorization = this.authorization;\n            }\n          } else {\n            options.httpHeaders = {\n              Authorization: this.authorization,\n            };\n          }\n        }\n        options.baseHref = this.baseHref;\n        PDFViewerApplication.onError = (error: Error) => this.pdfLoadingFailed.emit(error);\n        this.ngZone.runOutsideAngular(async () => {\n          await PDFViewerApplication.open(this._src, options);\n          this.pdfLoadingStarts.emit({});\n          // await this.setZoom();\n          setTimeout(async () => await this.setZoom());\n        });\n      }\n      setTimeout(() => {\n        if (!this.shuttingDown) {\n          // hurried users sometimes reload the PDF before it has finished initializing\n          if (this.page) {\n            PDFViewerApplication.page = Number(this.page);\n          }\n        }\n      }, 100);\n    }\n  }\n\n  private removeScrollbarInInititeScrollMode(): void {\n    if (this.pageViewMode === 'infinite-scroll') {\n      setTimeout(() => {\n        if (this.pageViewMode === 'infinite-scroll') {\n          const viewer = document.getElementById('viewer');\n          if (viewer) {\n            const height = viewer.clientHeight + 17;\n            const zoom = document.getElementsByClassName('zoom')[0];\n            if (this.primaryMenuVisible) {\n              this.height = height + 35 + 'px';\n            } else {\n              if (height > 17) {\n                this.height = height + 'px';\n              }\n            }\n            if (zoom) {\n              (<HTMLElement>zoom).style.height = this.height;\n            }\n          }\n        }\n      });\n    }\n  }\n\n  public async openPDF2(): Promise<void> {\n    this.overrideDefaultSettings();\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n    // #802 clear the form data; otherwise the \"download\" dialogs opens\n    PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n\n    await PDFViewerApplication.close();\n    this.formData = {};\n    this.formIdToFieldName = {};\n    this.formRadioButtonValueToId = {};\n\n    const options: any = {\n      password: this.password,\n      verbosity: this.logLevel,\n    };\n    if (this._src && this._src['range']) {\n      options.range = this._src['range'];\n    }\n    if (this.httpHeaders) {\n      options.httpHeaders = this.httpHeaders;\n    }\n    if (this.authorization) {\n      options.withCredentials = true;\n      if (options.httpHeaders) {\n        if (!options.httpHeaders.Authorization) {\n          options.httpHeaders.Authorization = this.authorization;\n        }\n      } else {\n        options.httpHeaders = {\n          Authorization: this.authorization,\n        };\n      }\n    }\n    options.baseHref = this.baseHref;\n    PDFViewerApplication.open(this._src, options).then(\n      () => {\n        this.pdfLoaded.emit({ pagesCount: PDFViewerApplication.pagesCount });\n      },\n      (error: Error) => this.pdfLoadingFailed.emit(error)\n    );\n  }\n\n  private selectCursorTool() {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: this.handTool ? 1 : 0 });\n  }\n\n  public async ngOnDestroy(): Promise<void> {\n    if (typeof window === 'undefined') {\n      return; // fast escape for server side rendering\n    }\n    (window as any).getFormValue = undefined;\n    (window as any).setFormValue = undefined;\n    (window as any).registerAcroformAnnotations = undefined;\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    this.shuttingDown = true;\n\n    NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized = false;\n    if (this.initTimeout) {\n      clearTimeout(this.initTimeout);\n      this.initTimeout = undefined;\n    }\n    if (PDFViewerApplication) {\n      if (this.pinchOnMobileSupport) {\n        this.pinchOnMobileSupport.destroyPinchZoom();\n        this.pinchOnMobileSupport = undefined;\n      }\n\n      // #802 clear the form data; otherwise the \"download\" dialogs opens\n      PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n      this.formData = {};\n      this.formIdToFieldName = {};\n      this.formRadioButtonValueToId = {};\n\n      PDFViewerApplication._cleanup();\n\n      await PDFViewerApplication.close();\n      if (PDFViewerApplication.printKeyDownListener) {\n        removeEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n      }\n      setTimeout(() => {\n        if (PDFViewerApplication._boundEvents) {\n          PDFViewerApplication.unbindWindowEvents();\n        }\n        const bus = PDFViewerApplication.eventBus;\n        if (bus) {\n          PDFViewerApplication.unbindEvents();\n          for (const key in bus._listeners) {\n            if (bus._listeners[key]) {\n              const list = bus._listeners[key];\n              // not sure if the for loop is necessary - but\n              // it might improve garbage collection if the \"listeners\"\n              // array is stored somewhere else\n              for (let i = 0; i < list.length; i++) {\n                list[i] = undefined;\n              }\n              bus._listeners[key] = undefined;\n            }\n          }\n        }\n        (PDFViewerApplication.eventBus as any) = null;\n      });\n    }\n\n    const body = document.getElementsByTagName('body');\n    if (body[0]) {\n      const topLevelElements = body[0].children;\n      for (let i = topLevelElements.length - 1; i >= 0; i--) {\n        const e = topLevelElements.item(i);\n        if (e && e.id === 'printContainer') {\n          body[0].removeChild(e);\n        } else if (e && e.id === 'fileInput') {\n          body[0].removeChild(e);\n        }\n      }\n    }\n  }\n\n  private isPrimaryMenuVisible(): boolean {\n    if (this.showToolbar) {\n      const visible =\n        this.showBookmarkButton ||\n        this.showDownloadButton ||\n        this.showFindButton ||\n        this.showOpenFileButton ||\n        this.showPagingButtons ||\n        this.showPresentationModeButton ||\n        this.showPrintButton ||\n        this.showPropertiesButton ||\n        this.showRotateButton ||\n        this.showHandToolButton ||\n        this.showScrollingButton ||\n        this.showSpreadButton ||\n        this.showSidebarButton ||\n        this.showZoomButtons;\n\n      if (visible) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public async ngOnChanges(changes: SimpleChanges) {\n    if (typeof window === 'undefined') {\n      return; // server side rendering\n    }\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n\n    if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized) {\n      if ('src' in changes || 'base64Src' in changes) {\n        if (!!this._src) {\n          if (this.ngxExtendedPdfViewerIncompletelyInitialized) {\n            this.openPDF();\n          } else {\n            await this.openPDF2();\n          }\n        } else {\n          // #802 clear the form data; otherwise the \"download\" dialogs opens\n          PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n          this.formData = {};\n          this.formIdToFieldName = {};\n          this.formRadioButtonValueToId = {};\n\n          let inputField = PDFViewerApplication.appConfig?.openFileInput;\n          if (!inputField) {\n            inputField = document.querySelector('#fileInput') as HTMLInputElement;\n          }\n          if (inputField) {\n            inputField.value = '';\n          }\n\n          await PDFViewerApplication.close();\n        }\n      }\n      if ('enableDragAndDrop' in changes) {\n        PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop);\n      }\n\n      if ('zoom' in changes) {\n        (async () => await this.setZoom())();\n      }\n\n      if ('maxZoom' in changes) {\n        PDFViewerApplicationOptions.set('maxZoom', this.maxZoom);\n      }\n\n      if ('minZoom' in changes) {\n        PDFViewerApplicationOptions.set('minZoom', this.minZoom);\n      }\n\n      if ('handTool' in changes) {\n        this.selectCursorTool();\n      }\n      if ('page' in changes) {\n        if (this.page) {\n          // tslint:disable-next-line: triple-equals\n          if (this.page != PDFViewerApplication.page) {\n            PDFViewerApplication.page = this.page;\n          }\n        }\n      }\n      if ('pageLabel' in changes) {\n        if (this.pageLabel) {\n          if (this.pageLabel !== PDFViewerApplication.pdfViewer.currentPageLabel) {\n            PDFViewerApplication.pdfViewer.currentPageLabel = this.pageLabel;\n          }\n        }\n      }\n\n      if ('rotation' in changes) {\n        if (this.rotation) {\n          const r = Number(this.rotation);\n          if (r === 0 || r === 90 || r === 180 || r === 270) {\n            PDFViewerApplication.pdfViewer.pagesRotation = r;\n          }\n        } else {\n          PDFViewerApplication.pdfViewer.pagesRotation = 0;\n        }\n      }\n      if ('scrollMode' in changes) {\n        if (this.scrollMode || this.scrollMode === ScrollModeType.vertical) {\n          PDFViewerApplication.pdfViewer.scrollMode = this.scrollMode;\n        }\n      }\n      if ('sidebarVisible' in changes) {\n        if (this.sidebarVisible) {\n          PDFViewerApplication.pdfSidebar.open();\n        } else {\n          PDFViewerApplication.pdfSidebar.close();\n        }\n      }\n      if ('filenameForDownload' in changes) {\n        PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n      }\n      if ('nameddest' in changes) {\n        if (this.nameddest) {\n          PDFViewerApplication.pdfLinkService.goToDestination(this.nameddest);\n        }\n      }\n\n      if ('spread' in changes) {\n        if (this.spread === 'even') {\n          PDFViewerApplication.spreadModeOnLoad = 2;\n          PDFViewerApplication.pdfViewer.spreadMode = 2;\n          this.onSpreadChange('even');\n        } else if (this.spread === 'odd') {\n          PDFViewerApplication.spreadModeOnLoad = 1;\n          PDFViewerApplication.pdfViewer.spreadMode = 1;\n          this.onSpreadChange('odd');\n        } else {\n          PDFViewerApplication.spreadModeOnLoad = 0;\n          PDFViewerApplication.pdfViewer.spreadMode = 0;\n          this.onSpreadChange('off');\n        }\n      }\n\n      if ('enablePinchOnMobile' in changes) {\n        if (!changes['enablePinchOnMobile'].isFirstChange()) {\n          if (changes['enablePinchOnMobile'].currentValue !== changes['enablePinchOnMobile'].previousValue) {\n            if (this.enablePinchOnMobile) {\n              this.pinchOnMobileSupport = new PinchOnMobileSupport(this.ngZone);\n            } else {\n              if (this.pinchOnMobileSupport) {\n                this.pinchOnMobileSupport.destroyPinchZoom();\n                this.pinchOnMobileSupport = undefined;\n              }\n            }\n          }\n        }\n      }\n\n      if ('wheelAction' in changes) {\n        PDFViewerApplicationOptions.set('wheelAction', this.wheelAction);\n      }\n\n      this.primaryMenuVisible = this.showToolbar;\n      if (!this.showSecondaryToolbarButton || this.hideKebabMenuForSecondaryToolbar) {\n        if (!this.isPrimaryMenuVisible()) {\n          this.primaryMenuVisible = false;\n        }\n      }\n      setTimeout(() => this.calcViewerPositionTop());\n    } // end of if (NgxExtendedPdfViewerComponent.ngxExtendedPdfViewerInitialized)\n\n    if ('printResolution' in changes) {\n      const options = PDFViewerApplicationOptions;\n      if (options) {\n        options.set('printResolution', this.printResolution);\n      }\n    }\n    if ('ignoreKeyboard' in changes) {\n      const options = PDFViewerApplicationOptions;\n      if (options) {\n        this.overrideDefaultSettings();\n      }\n    }\n    if ('ignoreKeys' in changes) {\n      const options = PDFViewerApplicationOptions;\n      if (options) {\n        this.overrideDefaultSettings();\n      }\n    }\n    if ('acceptKeys' in changes) {\n      const options = PDFViewerApplicationOptions;\n      if (options) {\n        this.overrideDefaultSettings();\n      }\n    }\n    if ('showBorders' in changes) {\n      if (!changes['showBorders'].isFirstChange()) {\n        const options = PDFViewerApplicationOptions;\n        if (options) {\n          this.overrideDefaultSettings();\n          const viewer = document.getElementById('viewer') as HTMLElement;\n          if (this.showBorders) {\n            viewer.classList.remove('removePageBorders');\n          } else {\n            viewer.classList.add('removePageBorders');\n          }\n\n          if (PDFViewerApplication.pdfViewer) {\n            PDFViewerApplication.pdfViewer.removePageBorders = !this.showBorders;\n          }\n          const zoomEvent = {\n            source: viewer,\n            // tslint:disable-next-line:no-bitwise\n            scale: (Number(this.zoom) | 100) / 100,\n            presetValue: this.zoom,\n          } as ScaleChangingEvent;\n          PDFViewerApplication.eventBus.dispatch('scalechanging', zoomEvent);\n        }\n      }\n    }\n\n    if ('showUnverifiedSignatures' in changes) {\n      if (PDFViewerApplication && PDFViewerApplication.pdfDocument) {\n        PDFViewerApplication.pdfDocument._transport.messageHandler.send('showUnverifiedSignatures', this.showUnverifiedSignatures);\n      }\n    }\n\n    if ('formData' in changes) {\n      if (!changes['formData'].isFirstChange()) {\n        this.updateFormFields(this.formData, changes['formData'].previousValue);\n      }\n    }\n\n    if ('enablePrint' in changes) {\n      if (!changes['enablePrint'].isFirstChange()) {\n        PDFViewerApplication.enablePrint = this.enablePrint;\n      }\n    }\n    if (\n      ('customFindbar' in changes && !changes['customFindbar'].isFirstChange()) ||\n      ('customFindbarButtons' in changes && !changes['customFindbarButtons'].isFirstChange()) ||\n      ('customFindbarInputArea' in changes && !changes['customFindbarInputArea'].isFirstChange()) ||\n      ('customToolbar' in changes && !changes['customToolbar'].isFirstChange())\n    ) {\n      if (this.dummyComponents) {\n        this.dummyComponents.addMissingStandardWidgets();\n      }\n    }\n\n    if ('pdfBackgroundColor' in changes && !changes['pdfBackgroundColor '].isFirstChange()) {\n      PDFViewerApplicationOptions.set('pdfBackgroundColor', this.pdfBackground);\n    }\n    if ('pdfBackgroundColorToReplace' in changes && !changes['pdfBackgroundColorToReplace'].isFirstChange()) {\n      PDFViewerApplicationOptions.set('pdfBackgroundColorToReplace', this.pdfBackgroundColorToReplace);\n    }\n  }\n\n  private async setZoom() {\n    // sometimes ngOnChanges calls this method before the page is initialized,\n    // so let's check if this.root is already defined\n    if (this.root) {\n      const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n      let zoomAsNumber = this.zoom;\n      if (String(zoomAsNumber).endsWith('%')) {\n        zoomAsNumber = Number(String(zoomAsNumber).replace('%', '')) / 100;\n      } else if (!isNaN(Number(zoomAsNumber))) {\n        zoomAsNumber = Number(zoomAsNumber) / 100;\n      }\n      if (!zoomAsNumber) {\n        if (!PDFViewerApplication.store) {\n          // It's difficult to prevent calling this method to early, so we need this check.\n          // setZoom() is called later again, when the PDF document has been loaded and its\n          // fingerprint has been calculated.\n        } else {\n          const userSetting = await PDFViewerApplication.store.get('zoom');\n          if (userSetting) {\n            if (!isNaN(Number(userSetting))) {\n              zoomAsNumber = Number(userSetting) / 100;\n            } else {\n              zoomAsNumber = userSetting;\n            }\n          } else {\n            zoomAsNumber = 'auto';\n          }\n        }\n      }\n\n      if (PDFViewerApplication) {\n        const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n        PDFViewerApplicationOptions.set('defaultZoomValue', zoomAsNumber);\n      }\n\n      const scaleDropdownField = (this.root.nativeElement as HTMLElement).querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n      if (scaleDropdownField) {\n        if (this.zoom === 'auto' || this.zoom === 'page-fit' || this.zoom === 'page-actual' || this.zoom === 'page-width') {\n          scaleDropdownField.value = this.zoom;\n        } else {\n          scaleDropdownField.value = 'custom';\n          if (scaleDropdownField.options) {\n            for (const option of scaleDropdownField.options as any) {\n              if (option.value === 'custom') {\n                option.textContent = `${Math.round(Number(zoomAsNumber) * 100_000) / 1000}%`;\n              }\n            }\n          }\n        }\n      }\n\n      if (PDFViewerApplication.pdfViewer) {\n        PDFViewerApplication.pdfViewer.currentScaleValue = zoomAsNumber || 'auto';\n      }\n    }\n  }\n\n  public onResize(): void {\n    const pdfViewer = document.getElementsByClassName('html');\n    if (pdfViewer && pdfViewer.length > 0) {\n      const container = document.getElementById('outerContainer');\n      if (container) {\n        const width = container.clientWidth;\n        this.toolbarWidthInPixels = width;\n        if (this.secondaryToolbarComponent) {\n          this.secondaryToolbarComponent.checkVisibility();\n        }\n      }\n      this.checkHeight();\n    }\n    try {\n      const observer = new ResizeObserver(() => this.removeScrollbarInInititeScrollMode());\n      const viewer = document.getElementById('viewer');\n      if (viewer) {\n        observer.observe(viewer);\n      }\n    } catch (exception) {\n      console.log('ResizeObserver is not supported by your browser');\n    }\n  }\n\n  @HostListener('contextmenu')\n  public onContextMenu(): boolean {\n    return this.contextMenuAllowed;\n  }\n\n  public onSecondaryMenuIsEmpty(hideKebabButton: boolean) {\n    this.hideKebabMenuForSecondaryToolbar = hideKebabButton;\n    if (hideKebabButton) {\n      if (!this.isPrimaryMenuVisible()) {\n        this.primaryMenuVisible = false;\n      }\n    }\n  }\n\n  public registerAcroformAnnotations(sortedAnnotations: Array<Annotation>): void {\n    let ids: { [key: string]: Annotation } = {};\n    let duplicates: { [key: string]: Annotation } = {};\n    for (let a of sortedAnnotations) {\n      if (a.fieldName) {\n        if (ids[a.fieldName]) {\n          duplicates[a.fieldName] = a;\n        }\n        ids[a.fieldName] = a;\n      }\n    }\n    for (let a of sortedAnnotations) {\n      if (a.fieldName && duplicates[a.fieldName]) {\n        this.formIdToFieldName[a.id] = a.fieldName;\n      }\n    }\n  }\n\n  public getFormValue(key: string): Object {\n    if (this.formData[key] === undefined) {\n      if (key.includes('/')) {\n        key = key.split('/')[0];\n      }\n    }\n    return { value: this.formData[key] };\n  }\n\n  public setFormValue(key: string, value: string): void {\n    if (!this.formData) {\n      this.formData = {};\n    }\n\n    if (this.formIdToFieldName[key]) {\n      // radiobuttons\n      this.formData[this.formIdToFieldName[key]] = value;\n    } else {\n      this.formData[key] = value;\n    }\n    this.ngZone.run(() => this.formDataChange.emit(this.formData));\n  }\n\n  public assignFormIdAndFieldName(key: string, fieldName: string | boolean, radioButtonField?: string): void {\n    this.formIdToFieldName[key] = fieldName;\n    if (radioButtonField) {\n      this.formRadioButtonValueToId[radioButtonField] = key;\n    }\n  }\n\n  public updateFormFields(formData: Object, previousFormData: Object) {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n\n    if (!PDFViewerApplication || !PDFViewerApplication.pdfDocument || !PDFViewerApplication.pdfDocument.annotationStorage) {\n      // ngOnChanges calls this method too early - so just ignore it\n      return;\n    }\n    const storage = PDFViewerApplication.pdfDocument.annotationStorage;\n\n    for (const key in formData) {\n      if (formData.hasOwnProperty(key)) {\n        if (formData[key] !== previousFormData[key]) {\n          const field = document.querySelector(\"input[name='\" + key + \"']\") as HTMLElement;\n          if (field instanceof HTMLInputElement) {\n            if (field.type === 'radio') {\n              storage.setValue(field.id, key, { value: formData[key] === field.value, emitMessage: false });\n              const fields = document.querySelectorAll(\"input[name='\" + key + \"']\");\n              const fieldIdToActivate = this.formRadioButtonValueToId[formData[key]];\n              fields.forEach((field: HTMLInputElement) => {\n                field.checked = field.id === fieldIdToActivate;\n              });\n            } else if (field.type === 'checkbox') {\n              storage.setValue(field.id, key, { value: formData[key], emitMessage: false });\n              field.checked = formData[key];\n            } else {\n              storage.setValue(field.id, key, { value: formData[key], emitMessage: false });\n              field.value = formData[key];\n            }\n          } else if (!field) {\n            const textarea = document.querySelector(\"textarea[name='\" + key + \"']\") as HTMLTextAreaElement;\n            if (textarea) {\n              storage.setValue(textarea.id, key, { value: formData[key], emitMessage: false });\n              textarea.value = formData[key];\n            } else {\n              const dropdown = document.querySelector(\"select[name='\" + key + \"']\") as HTMLSelectElement | null;\n              if (dropdown) {\n                storage.setValue(dropdown.id, key, { value: formData[key], emitMessage: false });\n                if (dropdown.multiple) {\n                  const options = this.formData[key] as string[];\n                  for (let i = 0; i < dropdown.options.length; i++) {\n                    dropdown.options[i].selected = options.indexOf(dropdown.options[i].value) >= 0;\n                  }\n                } else {\n                  dropdown.value = formData[key];\n                }\n              }\n            }\n          } else {\n            const fieldName = this.formIdToFieldName[key];\n          }\n        }\n      }\n    }\n\n    for (const key in previousFormData) {\n      if (previousFormData.hasOwnProperty(key)) {\n        if (!formData.hasOwnProperty(key)) {\n          const field = document.querySelector(\"input[name='\" + key + \"']\") as HTMLElement;\n          if (field instanceof HTMLInputElement) {\n            // this entry has been deleted\n            if (field.type === 'checkbox') {\n              storage.setValue(field.id, key, { value: false, emitMessage: false });\n              field.checked = false;\n            } else {\n              storage.setValue(field.id, key, { value: undefined, emitMessage: false });\n              field.value = '';\n            }\n          } else if (!field) {\n            const textarea = document.querySelector(\"textarea[name='\" + key + \"']\") as HTMLTextAreaElement;\n            if (textarea) {\n              storage.setValue(textarea.id, key, { value: undefined, emitMessage: false });\n              textarea.value = '';\n            }\n          }\n        }\n      }\n    }\n  }\n\n  public loadComplete(pdf: any /* PDFDocumentProxy */): void {\n    /** This method has been inspired by https://medium.com/factory-mind/angular-pdf-forms-fa72b15c3fbd. Thanks, Jonny Fox! */\n    this.hasSignature = false;\n\n    this.buttonValues = {};\n\n    for (let i = 1; i <= pdf.numPages; i++) {\n      // track the current page\n      pdf\n        .getPage(i)\n        .then((p) => {\n          // get the annotations of the current page\n          return p.getAnnotations();\n        })\n        .then((annotations) => {\n          // ugly cast due to missing typescript definitions\n          // please contribute to complete @types/pdfjs-dist\n\n          annotations\n            .filter((a) => a.subtype === 'Widget') // get the form field annotation only\n            .forEach((a) => {\n              // Additional PDF Form Field Types #567: Store the exportValue for the check boxes and buttonValue for radio buttons for quick reference\n              if (a.checkBox) this.buttonValues[a.id] = a.exportValue;\n              else if (a.radioButton) this.buttonValues[a.id] = a.buttonValue;\n\n              if (a.fieldType === 'Sig') {\n                this.ngZone.run(() => {\n                  this.hasSignature = true;\n                  setTimeout(() => {\n                    const viewerContainer = document.querySelector('#viewerContainer') as HTMLElement;\n                    viewerContainer.scrollBy(0, -32);\n                  });\n                });\n              }\n              /*\n              // get the rectangle that represent the single field\n              // and resize it according to the current DPI\n              const fieldRect = currentPage.getViewport(dpiRatio).convertToViewportRectangle(a.rect);\n\n              // add the corresponding input\n              this.addInput(a, fieldRect);\n              */\n            });\n        });\n    }\n    this.pdfLoaded.emit({ pagesCount: pdf.numPages } as PdfLoadedEvent);\n  }\n\n  public async zoomToPageWidth(event: MouseEvent): Promise<void> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any).PDFViewerApplication;\n    const desiredCenterY = event.clientY;\n    const previousScale = (PDFViewerApplication.pdfViewer as any).currentScale;\n    if (this.zoom !== pdfDefaultOptions.doubleTapZoomFactor && this.zoom + '%' !== pdfDefaultOptions.doubleTapZoomFactor) {\n      this.previousZoom = this.zoom;\n      this.zoom = pdfDefaultOptions.doubleTapZoomFactor; // by default: 'page-width';\n      await this.setZoom();\n    } else {\n      if (this.previousZoom) {\n        this.zoom = this.previousZoom;\n      } else {\n        this.zoom = 'page-width';\n      }\n      await this.setZoom();\n    }\n\n    const currentScale = (PDFViewerApplication.pdfViewer as any).currentScale;\n    const scaleCorrectionFactor = currentScale / previousScale - 1;\n    const rect = (PDFViewerApplication.pdfViewer as any).container.getBoundingClientRect();\n    const dy = desiredCenterY - rect.top;\n    (PDFViewerApplication.pdfViewer as any).container.scrollTop += dy * scaleCorrectionFactor;\n  }\n}\n","<link *ngIf=\"useBrowserLocale\" rel=\"resource\" type=\"application/l10n\" [attr.xhref]=\"localeFolderPath + '/locale.properties'\" origin=\"ngx-extended-pdf-viewer\" />\n<pdf-dark-theme *ngIf=\"theme === 'dark'\"></pdf-dark-theme>\n<pdf-light-theme *ngIf=\"theme === 'light'\"></pdf-light-theme>\n<pdf-acroform-dark-theme *ngIf=\"formTheme === 'dark'\"></pdf-acroform-dark-theme>\n<pdf-acroform-default-theme *ngIf=\"formTheme === 'light'\"></pdf-acroform-default-theme>\n\n<pdf-dynamic-css [zoom]=\"mobileFriendlyZoomScale\" [width]=\"toolbarWidthInPixels\"></pdf-dynamic-css>\n<ng-content *ngTemplateOutlet=\"customPdfViewer ? customPdfViewer : defaultPdfViewer\"></ng-content>\n\n<ng-template #defaultPdfViewer>\n  <div class=\"zoom\" [style.height]=\"minHeight ? minHeight : height\" #root>\n    <div class=\"html\">\n      <div class=\"loadingInProgress body\" [style.backgroundColor]=\"backgroundColor\">\n        <div id=\"outerContainer\" (window:resize)=\"onResize()\">\n          <div class=\"free-floating-bar\" *ngIf=\"showFreeFloatingBar\">\n            <ng-content *ngTemplateOutlet=\"customFreeFloatingBar ? customFreeFloatingBar : defaultFreeFloatingBar\"></ng-content>\n          </div>\n          <pdf-sidebar\n            #pdfsidebar\n            [sidebarPositionTop]=\"sidebarPositionTop\"\n            [sidebarVisible]=\"sidebarVisible || false\"\n            [showSidebarButton]=\"showSidebarButton\"\n            [customSidebar]=\"customSidebar\"\n            [customThumbnail]=\"customThumbnail\"\n            (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n            [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n          >\n          </pdf-sidebar>\n          <div id=\"mainContainer\">\n            <pdf-dummy-components></pdf-dummy-components>\n\n            <pdf-toolbar\n              [customToolbar]=\"customToolbar\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [primaryMenuVisible]=\"primaryMenuVisible\"\n              [showBookmarkButton]=\"showBookmarkButton\"\n              [showDownloadButton]=\"showDownloadButton\"\n              [showFindButton]=\"showFindButton\"\n              [showHandToolButton]=\"showHandToolButton\"\n              [showOpenFileButton]=\"showOpenFileButton\"\n              [showPrintButton]=\"showPrintButton && enablePrint\"\n              [showPagingButtons]=\"showPagingButtons\"\n              [showPresentationModeButton]=\"showPresentationModeButton\"\n              [showRotateButton]=\"showRotateButton\"\n              [showSecondaryToolbarButton]=\"showSecondaryToolbarButton && !hideKebabMenuForSecondaryToolbar\"\n              [showSidebarButton]=\"showSidebarButton\"\n              [showZoomButtons]=\"showZoomButtons\"\n              [textLayer]=\"textLayer\"\n              [toolbarMarginTop]=\"toolbarMarginTop\"\n              [toolbarWidth]=\"toolbarWidth\"\n              (onToolbarLoaded)=\"(onToolbarLoaded)\"\n              [zoomLevels]=\"zoomLevels\"\n            ></pdf-toolbar>\n\n            <pdf-secondary-toolbar\n              #pdfSecondaryToolbarComponent\n              [customSecondaryToolbar]=\"customSecondaryToolbar\"\n              [secondaryToolbarTop]=\"secondaryToolbarTop\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [showPresentationModeButton]=\"showPresentationModeButton\"\n              [showOpenFileButton]=\"showOpenFileButton\"\n              [showPrintButton]=\"showPrintButton && enablePrint\"\n              [showDownloadButton]=\"showDownloadButton\"\n              [showBookmarkButton]=\"showBookmarkButton\"\n              [showPagingButtons]=\"showPagingButtons\"\n              [showRotateButton]=\"showRotateButton\"\n              [showHandToolButton]=\"showHandToolButton\"\n              [showScrollingButton]=\"showScrollingButton\"\n              [showSpreadButton]=\"showSpreadButton\"\n              [showPropertiesButton]=\"showPropertiesButton\"\n              (spreadChange)=\"onSpreadChange($event)\"\n              (secondaryMenuIsEmpty)=\"onSecondaryMenuIsEmpty($event)\"\n            >\n            </pdf-secondary-toolbar>\n\n            <pdf-findbar\n              [findbarLeft]=\"findbarLeft\"\n              [findbarTop]=\"findbarTop\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [showFindButton]=\"showFindButton || false\"\n              [customFindbarInputArea]=\"customFindbarInputArea\"\n              [customFindbarButtons]=\"customFindbarButtons\"\n              [showFindCurrentPageOnly]=\"showFindCurrentPageOnly\"\n              [showFindEntirePhrase]=\"showFindEntirePhrase\"\n              [showFindEntireWord]=\"showFindEntireWord\"\n              [showFindFuzzySearch]=\"showFindFuzzySearch\"\n              [showFindHighlightAll]=\"showFindHighlightAll\"\n              [showFindIgnoreAccents]=\"showFindIgnoreAccents\"\n              [showFindMatchCase]=\"showFindMatchCase\"\n              [showFindMessages]=\"showFindMessages\"\n              [showFindPageRange]=\"showFindPageRange\"\n              [showFindResultsCount]=\"showFindResultsCount\"\n            >\n            </pdf-findbar>\n\n            <pdf-context-menu></pdf-context-menu>\n\n            <div id=\"viewerContainer\" [style.top]=\"viewerPositionTop\" [style.backgroundColor]=\"backgroundColor\" tabindex=\"0\">\n              <div class=\"unverified-signature-warning\" *ngIf=\"hasSignature && showUnverifiedSignatures\">\n                {{\n                  'unverified_signature_warning'\n                    | translate\n                      : \"This PDF file contains a digital signature. The PDF viewer can't verify if the signature is valid. Please download the file and open it in Acrobat Reader to verify the signature is valid.\"\n                    | async\n                }}\n              </div>\n              <div class=\"modified-background-warning\" *ngIf=\"pdfBackground\">\n                {{\n                  'modified_background_warning'\n                    | translate: 'This PDF is rendered with a custom background. It does not look the way its author intended it to look.'\n                    | async\n                }}\n              </div>\n              <div id=\"viewer\" class=\"pdfViewer\" (dblclick)=\"zoomToPageWidth($event)\"></div>\n            </div>\n            <pdf-error-message></pdf-error-message>\n          </div>\n          <!-- mainContainer -->\n\n          <div id=\"dialogContainer\">\n            <pdf-password-dialog></pdf-password-dialog>\n            <pdf-document-properties-dialog></pdf-document-properties-dialog>\n            <pdf-prepare-printing-dialog></pdf-prepare-printing-dialog>\n          </div>\n          <!-- dialogContainer -->\n        </div>\n        <!-- outerContainer -->\n        <input type=\"file\" id=\"fileInput\" class=\"hidden\" />\n        <div id=\"printContainer\"></div>\n      </div>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #defaultFreeFloatingBar> </ng-template>\n","Window['ngxConsoleFilter'] = (level: string, message: any): boolean => {\n  return true;\n}\nexport class NgxConsole {\n  public log(message: any): void {\n    if (Window['ngxConsoleFilter']('log', message)) {\n      console.log(message);\n    }\n  }\n  public error(message: any): void {\n    if (Window['ngxConsoleFilter']('error', message)) {\n      console.error(message);\n    }\n\n  }\n  public warn(message: any): void {\n    if (Window['ngxConsoleFilter']('warn', message)) {\n      console.warn(message);\n    }\n  }\n}\n\nWindow['ngxConsole'] = new NgxConsole();\n","// tslint:disable:max-line-length\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxExtendedPdfViewerCommonModule } from './ngx-extended-pdf-viewer-common.module';\nimport { NgxExtendedPdfViewerComponent } from './ngx-extended-pdf-viewer.component';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer.service';\nimport { NgxConsole } from './options/ngx-console';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { PdfDocumentPropertiesDialogComponent } from './pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nimport { PdfErrorMessageComponent } from './pdf-dialog/pdf-error-message/pdf-error-message.component';\nimport { PdfPasswordDialogComponent } from './pdf-dialog/pdf-password-dialog/pdf-password-dialog.component';\nimport { PdfPreparePrintingDialogComponent } from './pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfAcroformDarkThemeComponent } from './theme/acroform-dark-theme/pdf-acroform-dark-theme.component';\nimport { PdfAcroformDefaultThemeComponent } from './theme/acroform-default-theme/pdf-acroform-default-theme.component';\nimport { PdfBookmarkComponent } from './toolbar/pdf-bookmark/pdf-bookmark.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindCurrentPageOnlyComponent } from './toolbar/pdf-findbar/pdf-find-current-page-only/pdf-find-current-page-only.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindRangeComponent } from './toolbar/pdf-findbar/pdf-find-range/pdf-find-range.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindbarOptionsOneContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nimport { PdfFindIgnoreAccentsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFindbarOptionsThreeContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nimport { PdfFindMultipleSearchTextsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfFindbarOptionsTwoContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\n\nif (new Date().getTime() === 0) {\n  new NgxConsole().log('');\n}\n\nif (!Promise['allSettled']) {\n  if (!!window['Zone'] && !window['__zone_symbol__Promise.allSettled']) {\n    console.error(\n      \"Please update zone.js to version 0.10.3 or higher. Otherwise, you'll run the slow ECMAScript 5 version even on modern browser that can run the fast ESMAScript 2015 version.\"\n    );\n  }\n}\n\nfunction isKeyIgnored(cmd: number, keycode: number | 'WHEEL'): boolean {\n  const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = (window as any).PDFViewerApplicationOptions;\n\n  const ignoreKeys: Array<string> = PDFViewerApplicationOptions.get('ignoreKeys');\n  const acceptKeys: Array<string> = PDFViewerApplicationOptions.get('acceptKeys');\n  if (keycode === 'WHEEL') {\n    if (isKeyInList(ignoreKeys, cmd, 'WHEEL')) {\n      return true;\n    }\n    if (!!acceptKeys && acceptKeys.length > 0) {\n      return !isKeyInList(acceptKeys, cmd, 'WHEEL');\n    }\n\n    return false;\n  }\n\n  if (keycode === 16 || keycode === 17 || keycode === 18 || keycode === 224) {\n    // ignore solitary SHIFT, ALT, CMD, and CTRL because they only make sense as two-key-combinations\n    return true;\n  }\n  // cmd is a bit-array:\n  // 1 == CTRL\n  // 2 == ALT\n  // 4 == SHIFT\n  // 8 == META\n  const ignoreKeyboard = PDFViewerApplicationOptions.get('ignoreKeyboard');\n  if (!!ignoreKeyboard) {\n    return true;\n  }\n\n  if (!!ignoreKeys && ignoreKeys.length > 0) {\n    if (isKeyInList(ignoreKeys, cmd, keycode)) {\n      return true;\n    }\n  }\n\n  if (!!acceptKeys && acceptKeys.length > 0) {\n    return !isKeyInList(acceptKeys, cmd, keycode);\n  }\n  return false;\n}\n\nfunction isKeyInList(settings: Array<string>, cmd: number, keycode: number | 'WHEEL'): boolean {\n  if (!settings) {\n    return true;\n  }\n  return settings.some((keyDef) => isKey(keyDef, cmd, keycode));\n}\n\nfunction isKey(keyDef: string, cmd: number, keycode: number | 'WHEEL'): boolean {\n  let cmdDef = 0;\n  let key = 0;\n  keyDef = keyDef.toLowerCase();\n  // tslint:disable: no-bitwise\n  if (keyDef.includes('ctrl+')) {\n    cmdDef |= 1;\n    keyDef = keyDef.replace('ctrl+', '');\n  }\n  if (keyDef.includes('cmd+')) {\n    cmdDef |= 8;\n    keyDef = keyDef.replace('cmd+', '');\n  }\n  if (keyDef.includes('alt+')) {\n    cmdDef |= 2;\n    keyDef = keyDef.replace('alt+', '');\n  }\n  if (keyDef.includes('shift+')) {\n    cmdDef |= 4;\n    keyDef = keyDef.replace('shift+', '');\n  }\n  if (keyDef.includes('meta+')) {\n    cmdDef |= 8;\n    keyDef = keyDef.replace('meta+', '');\n  }\n\n  if (keyDef === 'up') {\n    key = 38;\n  } else if (keyDef === 'down') {\n    key = 40;\n  } else if (keyDef === '+' || keyDef === '\"+\"') {\n    key = 171;\n  } else if (keyDef === '-' || keyDef === '\"-\"') {\n    key = 173;\n  } else if (keyDef === 'esc') {\n    key = 27;\n  } else if (keyDef === 'enter') {\n    key = 13;\n  } else if (keyDef === 'space') {\n    key = 32;\n  } else if (keyDef === 'f4') {\n    key = 115;\n  } else if (keyDef === 'backspace') {\n    key = 8;\n  } else if (keyDef === 'home') {\n    key = 36;\n  } else if (keyDef === 'end') {\n    key = 35;\n  } else if (keyDef === 'left') {\n    key = 37;\n  } else if (keyDef === 'right') {\n    key = 39;\n  } else if (keyDef === 'pagedown') {\n    key = 34;\n  } else if (keyDef === 'pageup') {\n    key = 33;\n  } else {\n    key = keyDef.toUpperCase().charCodeAt(0);\n  }\n  if (keycode === 'WHEEL') {\n    return keyDef === 'wheel' && cmd === cmdDef;\n  }\n  return key === keycode && cmd === cmdDef;\n}\n\nif (typeof window !== 'undefined') {\n  (window as any).isKeyIgnored = isKeyIgnored;\n}\n\n@NgModule({\n  imports: [NgxExtendedPdfViewerCommonModule, CommonModule, FormsModule],\n  declarations: [NgxExtendedPdfViewerComponent],\n  providers: [NgxExtendedPdfViewerService],\n  exports: [\n    PdfZoomDropdownComponent,\n    PdfContextMenuComponent,\n    PdfPresentationModeComponent,\n    PdfOpenFileComponent,\n    PdfPrintComponent,\n    PdfDownloadComponent,\n    PdfBookmarkComponent,\n    PdfZoomToolbarComponent,\n    PdfPagingAreaComponent,\n    PdfFindbarComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSearchInputFieldComponent,\n    PdfFindPreviousComponent,\n    PdfFindNextComponent,\n    PdfFindInputAreaComponent,\n    PdfFindbarOptionsTwoContainerComponent,\n    PdfFindbarOptionsOneContainerComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindRangeComponent,\n    PdfFindCurrentPageOnlyComponent,\n    PdfFindEntireWordComponent,\n    PdfFindMultipleSearchTextsComponent,\n    PdfFindIgnoreAccentsComponent,\n    PdfFindbarOptionsThreeContainerComponent,\n    PdfFindResultsCountComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfHandToolComponent,\n    PdfRotatePageComponent,\n    PdfSelectToolComponent,\n    PdfToolbarComponent,\n    PdfFindButtonComponent,\n    PdfToggleSidebarComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfLastPageComponent,\n    PdfFirstPageComponent,\n    PdfNextPageComponent,\n    PdfPreviousPageComponent,\n    PdfPageNumberComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    NgxExtendedPdfViewerComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAcroformDarkThemeComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfErrorMessageComponent,\n  ],\n})\nexport class NgxExtendedPdfViewerModule {}\n","export const LinkTarget = {\n  NONE: 0,\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4\n};\n","export const NEED_PASSWORD = 1;\nexport const INCORRECT_PASSWORD = 2;\n\nexport interface PasswordPrompt {\n  /**\n   * Sets the callback function that, in turn, checks whether the password is correct.\n   * Close the password dialog before calling the callback function. If the password\n   * is wrong, it opens the password prompt dialog again.\n   *\n   * If you never call the callback, that's the same as clicking \"cancel\" on the password prompt.\n   * In other words, that's the way to go if you don't want to pass the password for some reason.\n   *\n   * @param updateCallback Function you can call to pass and verify the password\n   * @param reason Why is the password prompt requested?\n   * 1 = A password is required, but wasn't provided; 2 = the wrong password\n   * has been provided, so let's try again\n   */\n  setUpdateCallback(updateCallback: (password: string) => void, reason: 1 | 2);\n}\n","import { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport interface PdfDocumentInfo {\n  author?: string;\n  creationDate?: Date;\n  creator?: string;\n\n  keywords?: string;\n  linearized?: boolean;\n  maybeFileSize?: string;\n  modificationDate?: Date;\n  pdfFormatVersion?: string;\n  producer?: string;\n  subject?: string;\n  title?: string;\n}\n\nexport class PdfDocumentPropertiesExtractor {\n  private pdfDateStringRegex = new RegExp(\n    '^D:' + // Prefix (required)\n      '(\\\\d{4})' + // Year (required)\n      '(\\\\d{2})?' + // Month (optional)\n      '(\\\\d{2})?' + // Day (optional)\n      '(\\\\d{2})?' + // Hour (optional)\n      '(\\\\d{2})?' + // Minute (optional)\n      '(\\\\d{2})?' + // Second (optional)\n      '([Z|+|-])?' + // Universal time relation (optional)\n      '(\\\\d{2})?' + // Offset hour (optional)\n      // tslint:disable-next-line: quotemark\n      \"'?\" + // Splitting apostrophe (optional)\n      '(\\\\d{2})?' + // Offset minute (optional)\n      // tslint:disable-next-line: quotemark\n      \"'?\" // Trailing apostrophe (optional)\n  );\n\n  public async getDocumentProperties(): Promise<any> {\n    const PDFViewerApplication: IPDFViewerApplication = (window as any)\n      .PDFViewerApplication;\n    const pdfDocument = PDFViewerApplication.pdfDocument;\n\n    const result: any = {};\n    return pdfDocument\n      .getMetadata()\n      .then(({ info, metadata, contentDispositionFilename }) => {\n        result.author = info.Author;\n        result.creationDate = this.toDateObject(\n          info.CreationDate\n        );\n        result.creator = info.Creator;\n        result.keywords = info.Keywords;\n        result.linearized = info.IsLinearized;\n        result.modificationDate = this.toDateObject(\n          info.ModDate\n        );\n        result.pdfFormatVersion = info.PDFFormatVersion;\n        result.producer = info.Producer;\n      result.subject = info.Subject;\n        result.title = info.Title;\n        if (contentDispositionFilename) {\n          result.fileName = contentDispositionFilename;\n        }\n        return pdfDocument.getDownloadInfo();\n      })\n      .then(({ length }) => {\n        result.maybeFileSize = length;\n        return result;\n      });\n  }\n\n  /** shamelessly copied from pdf.js */\n  private toDateObject(input: string | any): Date | null {\n    // if (!input ||  typeof input !== \"string\")) {\n    //  return null;\n    //  }\n\n    // Optional fields that don't satisfy the requirements from the regular\n    // expression (such as incorrect digit counts or numbers that are out of\n    // range) will fall back the defaults from the specification.\n    const matches = this.pdfDateStringRegex.exec(input);\n    if (!matches) {\n      return null;\n    }\n\n    // JavaScript's `Date` object expects the month to be between 0 and 11\n    // instead of 1 and 12, so we have to correct for that.\n    const year = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || 'Z';\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n    // Universal time relation 'Z' means that the local time is equal to the\n    // universal time, whereas the relations '+'/'-' indicate that the local\n    // time is later respectively earlier than the universal time. Every date\n    // is normalized to universal time.\n    if (universalTimeRelation === '-') {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === '+') {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n}\n","/*\n * Public API Surface of ngx-extended-pdf-viewer\n */\n\nexport * from './lib/events/file-input-changed';\nexport * from './lib/events/find-result';\nexport * from './lib/events/invalid-pdf-exception';\nexport * from './lib/events/page-number-change';\nexport * from './lib/events/page-rendered-event';\nexport * from './lib/events/pages-loaded-event';\nexport * from './lib/events/pages-rotation-event';\nexport * from './lib/events/pdf-downloaded-event';\nexport * from './lib/events/pdf-loaded-event';\nexport * from './lib/events/pdf-loading-starts-event';\nexport * from './lib/events/pdf-thumbnail-drawn-event';\nexport * from './lib/events/progress-bar-event';\nexport * from './lib/events/scale-changing-event';\nexport * from './lib/events/sidebarview-changed';\nexport * from './lib/events/textlayer-rendered';\nexport * from './lib/ngx-extended-pdf-viewer-server.component';\nexport * from './lib/ngx-extended-pdf-viewer-server.module';\nexport * from './lib/ngx-extended-pdf-viewer.component';\nexport * from './lib/ngx-extended-pdf-viewer.module';\nexport * from './lib/ngx-extended-pdf-viewer.service';\nexport * from './lib/options/link-target';\nexport * from './lib/options/optional_content_config';\nexport * from './lib/options/password-prompt';\nexport * from './lib/options/pdf-background';\nexport * from './lib/options/pdf-default-options';\nexport * from './lib/options/pdf-print-range';\nexport * from './lib/options/pdf-viewer';\nexport * from './lib/options/pdf-viewer-app-config';\nexport * from './lib/options/pdf-viewer-application';\nexport * from './lib/options/verbosity-level';\nexport * from './lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nexport * from './lib/pdf-dialog/pdf-error-message/pdf-error-message.component';\n// export * from './lib/pdf-dialog/pdf-error-message/pdf-error-message.component';\nexport * from './lib/pdf-dialog/pdf-password-dialog/pdf-password-dialog.component';\nexport * from './lib/pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component';\nexport * from './lib/pdf-document-properties-extractor';\nexport * from './lib/pdf-notification-service';\nexport * from './lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar.component';\nexport * from './lib/theme/acroform-dark-theme/pdf-acroform-dark-theme.component';\nexport * from './lib/theme/acroform-default-theme/pdf-acroform-default-theme.component';\nexport * from './lib/theme/pdf-dark-theme/pdf-dark-theme.component';\nexport * from './lib/theme/pdf-light-theme/pdf-light-theme.component';\nexport * from './lib/toolbar/pdf-bookmark/pdf-bookmark.component';\nexport * from './lib/toolbar/pdf-context-menu/pdf-context-menu.component';\nexport * from './lib/toolbar/pdf-download/pdf-download.component';\nexport * from './lib/toolbar/pdf-find-button/pdf-find-button.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-current-page-only/pdf-find-current-page-only.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-range/pdf-find-range.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-findbar-options-one-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-fuzzily/pdf-find-fuzzily.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-ignore-accents/pdf-find-ignore-accents.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-findbar-options-three-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-phrase/pdf-find-entire-phrase.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-findbar-options-two-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nexport * from './lib/toolbar/pdf-hand-tool/pdf-hand-tool.component';\nexport * from './lib/toolbar/pdf-open-file/pdf-open-file.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-paging-area.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nexport * from './lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nexport * from './lib/toolbar/pdf-print/pdf-print.component';\nexport * from './lib/toolbar/pdf-rotate-page/pdf-rotate-page.component';\nexport * from './lib/toolbar/pdf-select-tool/pdf-select-tool.component';\nexport * from './lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nexport * from './lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nexport * from './lib/toolbar/pdf-toolbar/pdf-toolbar.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.PdfDarkThemeComponent","i2.PdfLightThemeComponent","i3.DynamicCssComponent","i4.PdfDummyComponentsComponent","i5","i1.PDFNotificationService","i1","i1.PdfSidebarToolbarComponent","i2.PdfSidebarContentComponent","i3","i1.PdfFindbarService","i1.PdfSearchInputFieldComponent","i2.PdfFindPreviousComponent","i3.PdfFindNextComponent","i4","i1.PdfFindHighlightAllComponent","i2.PdfFindMatchCaseComponent","i1.PdfFindIgnoreAccentsComponent","i2.PdfFindFuzzilyComponent","i3.PdfFindResultsCountComponent","i2","i1.PdfFindEntireWordComponent","i2.PdfFindMultipleSearchTextsComponent","i1.PdfFindInputAreaComponent","i2.PdfFindHighlightAllComponent","i3.PdfFindMatchCaseComponent","i4.PdfFindCurrentPageOnlyComponent","i5.PdfFindRangeComponent","i6.PdfFindEntireWordComponent","i7.PdfFindMultipleSearchTextsComponent","i8.PdfFindIgnoreAccentsComponent","i9.PdfFindFuzzilyComponent","i10.PdfFindResultsCountComponent","i11.PdfFindbarMessageContainerComponent","i12","i1.PdfFirstPageComponent","i2.PdfPreviousPageComponent","i3.PdfPageNumberComponent","i4.PdfNextPageComponent","i5.PdfLastPageComponent","i1.PdfZoomOutComponent","i2.PdfZoomInComponent","i3.PdfZoomDropdownComponent","i1.PdfToggleSidebarComponent","i2.PdfFindButtonComponent","i3.PdfPagingAreaComponent","i4.PdfZoomToolbarComponent","i5.PdfHandToolComponent","i6.PdfSelectToolComponent","i7.PdfRotatePageComponent","i8.PdfPresentationModeComponent","i9.PdfOpenFileComponent","i10.PdfPrintComponent","i11.PdfDownloadComponent","i12.PdfBookmarkComponent","i13.PdfToggleSecondaryToolbarComponent","i14","NgxExtendedPdfViewerService","i3.NgxExtendedPdfViewerService","i4.PdfDarkThemeComponent","i5.PdfLightThemeComponent","i6.PdfAcroformDarkThemeComponent","i7.PdfAcroformDefaultThemeComponent","i8.DynamicCssComponent","i9.PdfSidebarComponent","i10.PdfDummyComponentsComponent","i11.PdfToolbarComponent","i12.PdfSecondaryToolbarComponent","i13.PdfFindbarComponent","i14.PdfContextMenuComponent","i15.PdfErrorMessageComponent","i16.PdfPasswordDialogComponent","i17.PdfDocumentPropertiesDialogComponent","i18.PdfPreparePrintingDialogComponent","i19.TranslatePipe"],"mappings":"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"}