{"version":3,"file":"ngx-extended-pdf-viewer.mjs","sources":["../../../projects/ngx-extended-pdf-viewer/src/lib/options/editor-annotations.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-default-options.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/positioning.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/focus-management.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/events/find-result.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-cursor-tools.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-viewer.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/ngx-form-support.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-sidebar-views.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-notification-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-csp-policy.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-script-loader.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-keyboard-manager.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/services/ios-canvas-optimization.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/responsive-visibility.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/unit-to-px.ts","../../../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/theme/acroform-default-theme/pdf-acroform-default-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.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/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/pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.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-edit-signature-dialog/pdf-edit-signature-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-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/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-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-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-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-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-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-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-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-find-multiple/pdf-find-multiple.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.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-two-container/pdf-match-diacritics/pdf-match-diacritics.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.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/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/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/toolbar/pdf-shy-button/pdf-shy-button-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/toolbar/pdf-shy-button/pdf-shy-button.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-shy-button/pdf-shy-button.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-book-mode/pdf-book-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-book-mode/pdf-book-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-document-properties/pdf-document-properties.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-document-properties/pdf-document-properties.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-comment-editor/pdf-comment-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-comment-editor/pdf-comment-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-draw-editor/pdf-draw-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-draw-editor/pdf-draw-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor-signature/pdf-editor-signature.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor-signature/pdf-editor-signature.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-highlight-editor/pdf-highlight-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-highlight-editor/pdf-highlight-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-text-editor/pdf-text-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-text-editor/pdf-text-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor/pdf-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor/pdf-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-even-spread/pdf-even-spread.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-even-spread/pdf-even-spread.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-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/options/pdf-scroll-mode.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-down/pdf-move-down.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-down/pdf-move-down.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-up/pdf-move-up.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-up/pdf-move-up.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-no-spread/pdf-no-spread.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-no-spread/pdf-no-spread.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-odd-spread/pdf-odd-spread.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-odd-spread/pdf-odd-spread.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-cw/pdf-rotate-page-cw.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-cw/pdf-rotate-page-cw.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-ccw/pdf-rotate-page-ccw.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-ccw/pdf-rotate-page-ccw.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-single-page-mode/pdf-single-page-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-single-page-mode/pdf-single-page-mode.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-vertical-scroll-button/pdf-vertical-scroll-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.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-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-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-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.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.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/ngx-extended-pdf-viewer.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/annotation-layer-builder.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/options/pdf-spread-mode.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 AnnotationMode {\n  DISABLE = 0,\n  ENABLE = 1,\n  ENABLE_FORMS = 2,\n  ENABLE_STORAGE = 3,\n}\n\nexport enum AnnotationEditorType {\n  DISABLE = -1,\n  NONE = 0,\n  FREETEXT = 3,\n  HIGHLIGHT = 9,\n  STAMP = 13,\n  INK = 15,\n  POPUP = 16,\n  SIGNATURE = 101,\n  COMMENT = 102,\n}\n\nexport const AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\n  HIGHLIGHT_COLOR: 31,\n  HIGHLIGHT_DEFAULT_COLOR: 32,\n  HIGHLIGHT_THICKNESS: 33,\n  HIGHLIGHT_FREE: 34,\n  HIGHLIGHT_SHOW_ALL: 35,\n  DRAW_STEP: 41,\n};\n\nexport type AnnotationEditorTypeValue = -1 | 0 | 3 | 9 | 13 | 15 | 16;\n\nexport type InkPaths = {\n  lines: Array<Array<number>>; // Array of bezier curve arrays\n  points: Array<Array<number>>; // Array of raw point arrays\n};\n\nexport type InkEditorAnnotation = {\n  annotationType: 15;\n  color: Array<number>; // an array of three integer numbers\n  thickness: number;\n  opacity: number;\n  paths: InkPaths;\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type FreeTextEditorAnnotation = {\n  annotationType: 3;\n  color: Array<number>; // an array of three integer numbers\n  fontSize: number;\n  value: string;\n  pageIndex: number;\n  rect: Array<number>; // rect[1] is the y position; rect[2] is the x position\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type StampEditorAnnotation = {\n  annotationType: 13;\n  pageIndex: number;\n  bitmapUrl: string | Blob;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type HighlightEditorAnnotation = {\n  annotationType: 9;\n  color: Array<number>; // an array of three integer numbers\n  opacity: number;\n  thickness: number;\n  quadPoints?: any; // Object with numeric keys containing text bounds\n  outlines?: Array<Array<number>>; // Array of coordinate arrays for highlight shapes\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type PopupEditorAnnotation = {\n  annotationType: 16;\n  content: string;\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type EditorAnnotation = InkEditorAnnotation | FreeTextEditorAnnotation | StampEditorAnnotation | HighlightEditorAnnotation | PopupEditorAnnotation;\n","import { AnnotationMode } from './editor-annotations';\n\nconst _isIE11 = typeof window === 'undefined' ? false : !!(<any>globalThis).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 = '5.4.1105';\nexport const pdfjsBleedingEdgeVersion = '5.4.1106';\nexport function getVersionSuffix(folder: string): string {\n  if (folder?.includes('bleeding-edge')) {\n    return pdfjsBleedingEdgeVersion;\n  }\n  return pdfjsVersion;\n}\n\nexport function assetsUrl(url: string, postfixIfPathIsRelativ = ''): string {\n  if (url.includes('://')) {\n    // the assets folder is on an absolute path (like https://example.com/assets)\n    return url;\n  }\n  return `./${url + postfixIfPathIsRelativ}`;\n}\n\nexport function isBleedingEdge(): boolean {\n  return pdfDefaultOptions.assetsFolder?.includes('bleeding-edge');\n}\n\ndeclare const process: any;\n\nfunction isTestEnvironment(): boolean {\n  return (\n    typeof process !== 'undefined' &&\n    typeof (process as any).env !== 'undefined' &&\n    ((process as any).env.NODE_ENV === 'test' || (process as any).env.JEST_WORKER_ID !== undefined || (process as any).env.VITEST !== undefined)\n  );\n}\n\nexport function getSafeCanvasSize(): number {\n  if (typeof window === 'undefined' || typeof document === 'undefined' || isTestEnvironment()) {\n    return 4096;\n  }\n\n  // Use PDF.js defaults for maximum compatibility\n  // The IOSCanvasOptimizationService handles dynamic optimization\n  const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n  const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n\n  if (isIOS || isMobile) {\n    return 5242880; // PDF.js iOS/Android limit (5 megapixels)\n  }\n\n  return 33554432; // PDF.js desktop default (32 megapixels)\n}\n\n// sonar ignore next line\nexport const pdfDefaultOptions = {\n  needsES5: _isIE11 || isEdge || needsES5,\n  annotationEditorMode: 0,\n  annotationMode: AnnotationMode.ENABLE_FORMS,\n  defaultZoomDelay: 400, // milliseconds\n  cursorToolOnLoad: 0,\n  defaultUrl: '',\n  defaultZoomValue: '',\n  disableHistory: false,\n  disablePageLabels: false,\n  enableComment: false,\n  enablePermissions: false,\n  docBaseUrl: '',\n  enablePrintAutoRotate: true,\n  enableSignatureEditor: false,\n  externalLinkRel: 'noopener noreferrer nofollow',\n  externalLinkTarget: 0,\n  findController: undefined, // must extend PDFFindController\n  historyUpdateUrl: false,\n  ignoreDestinationZoom: false,\n  imageResourcesPath: './images/',\n  maxCanvasPixels: getSafeCanvasSize(),\n  forcePageColors: false,\n  pageColorsBackground: 'Canvas',\n  pageColorsForeground: 'CanvasText',\n  pdfBugEnabled: false,\n  printResolution: 150,\n  rangeChunkSize: 65536,\n  removePageBorders: false,\n  enableXfa: true,\n  fontExtraProperties: false,\n  sidebarViewOnLoad: -1,\n  scrollModeOnLoad: -1,\n  spreadModeOnLoad: -1,\n  textLayerMode: 1,\n  // viewerCssTheme: 0, // not supported by ngx-extended-pdf-viewer, use [theme] instead\n  viewOnLoad: 0,\n  cMapPacked: true,\n  cMapUrl: function () {\n    return `${assetsUrl(pdfDefaultOptions.assetsFolder, '/..')}/cmaps/`;\n  },\n  disableAutoFetch: false,\n  disableFontFace: false,\n  disableRange: false,\n  disableStream: true,\n  isEvalSupported: true,\n  isOffscreenCanvasSupported: true,\n  maxImageSize: -1,\n  pdfBug: false,\n  verbosity: 1,\n  workerPort: null,\n  assetsFolder: 'assets',\n  _internalFilenameSuffix: '.min', // don't modify this - it's an internal field\n  sandboxBundleSrc: function () {\n    return pdfDefaultOptions.needsES5\n      ? `./pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.mjs`\n      : `./pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}${pdfDefaultOptions._internalFilenameSuffix}.mjs`;\n  },\n  workerSrc: function () {\n    return pdfDefaultOptions.needsES5\n      ? `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.worker-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.mjs`\n      : `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.worker-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}${\n          pdfDefaultOptions._internalFilenameSuffix\n        }.mjs`;\n  },\n  standardFontDataUrl: () => `${assetsUrl(pdfDefaultOptions.assetsFolder, '/..')}/standard_fonts/`,\n  wasmUrl: () => `${assetsUrl(pdfDefaultOptions.assetsFolder, '/..')}/wasm/`,\n\n  // options specific to ngx-extended-pdf-viewer (as opposed to being used by pdf.js)\n  doubleTapZoomFactor: 'page-width',\n  doubleTapZoomsInHandMode: true,\n  doubleTapZoomsInTextSelectionMode: false,\n  doubleTapResetsZoomOnSecondDoubleTap: false,\n  enableScripting: false,\n  enableCatalogAAJavaScript: false,\n  enableOpenActionJavaScript: false,\n  defaultCacheSize: 50,\n  passwordPrompt: undefined,\n  enableHWA: true, // enable hardware acceleration. Active since pdf.js 4.4.\n  positionPopupDialogsWithJavaScript: true,\n  enablePageReordering: false, // allows users to reorder pages by dragging thumbnails,\n  pdfBackgroundColor: '', // background color for PDF content rendering\n};\n","import { pdfDefaultOptions } from '../options/pdf-default-options';\n\nexport class PositioningService {\n  private static readonly DOORHANGER_OFFSET = 17;\n  private static readonly TOOLBAR_MARGIN = 4;\n\n  public positionPopupBelowItsButton(buttonId: string, popupId: string): void {\n    if (!pdfDefaultOptions.positionPopupDialogsWithJavaScript) {\n      return;\n    }\n\n    setTimeout(() => {\n      const button = this.findVisibleButton(buttonId);\n      const popup = this.getPopupElement(popupId);\n\n      if (!button || !popup) return;\n\n      this.applyPopupPositioning(button, popup);\n    });\n  }\n\n  private findVisibleButton(buttonId: string): HTMLElement | null {\n    const findVisible = (selector: string) => Array.from(document.querySelectorAll<HTMLElement>(`#${selector}`)).find((el) => el.offsetParent !== null);\n\n    return findVisible(buttonId) || findVisible('secondaryToolbarToggle') || null;\n  }\n\n  private getPopupElement(popupId: string): HTMLElement | null {\n    const popup = document.querySelector<HTMLElement>(`#${popupId}`);\n    return popup?.offsetParent ? popup : null;\n  }\n\n  private applyPopupPositioning(button: HTMLElement, popup: HTMLElement): void {\n    const popupContainer = popup.offsetParent as HTMLElement;\n    const buttonRect = button.getBoundingClientRect();\n    const containerRect = popupContainer.getBoundingClientRect();\n\n    const isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n    let isRightAligned = isRTL;\n    if (popup.classList.contains('doorHangerRight')) {\n      isRightAligned = !isRTL;\n    }\n\n    this.setBasicPopupStyles(popup, isRightAligned);\n    this.setHorizontalPosition(popup, buttonRect, containerRect, isRightAligned);\n    this.setVerticalPosition(popup, containerRect);\n  }\n\n  private setBasicPopupStyles(popup: HTMLElement, isRightAligned: boolean): void {\n    Object.assign(popup.style, {\n      position: 'absolute',\n      display: 'block',\n      transformOrigin: isRightAligned ? 'top right' : 'top left',\n    });\n  }\n\n  private setHorizontalPosition(popup: HTMLElement, buttonRect: DOMRect, containerRect: DOMRect, isRightAligned: boolean): void {\n    const centerOffset = buttonRect.width / 2 - PositioningService.DOORHANGER_OFFSET;\n\n    if (!isRightAligned) {\n      popup.style.left = `${buttonRect.left - containerRect.left + centerOffset}px`;\n      popup.style.right = '';\n    } else {\n      popup.style.right = `${containerRect.right - buttonRect.right + centerOffset}px`;\n      popup.style.left = '';\n    }\n  }\n\n  private setVerticalPosition(popup: HTMLElement, containerRect: DOMRect): void {\n    const toolbarContainer = document.querySelector<HTMLElement>('#toolbarContainer');\n    if (!toolbarContainer) return;\n\n    const toolbarRect = toolbarContainer.getBoundingClientRect();\n    const top = toolbarRect.bottom - containerRect.top + PositioningService.TOOLBAR_MARGIN;\n    popup.style.top = `${top}px`;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FocusManagementService {\n  private previousActiveElement: HTMLElement | null = null;\n  private ariaLiveRegion: HTMLDivElement | null = null;\n  private activeDialogId: string | null = null;\n  private keydownHandler: ((event: KeyboardEvent) => void) | null = null;\n\n  constructor() {\n    this.initializeAriaLiveRegion();\n  }\n\n  /**\n   * Initializes a hidden aria-live region for screen reader announcements\n   */\n  private initializeAriaLiveRegion(): void {\n    if (typeof document === 'undefined') {\n      return; // SSR guard\n    }\n\n    this.ariaLiveRegion = document.createElement('div');\n    this.ariaLiveRegion.setAttribute('aria-live', 'polite');\n    this.ariaLiveRegion.setAttribute('aria-atomic', 'true');\n    this.ariaLiveRegion.setAttribute('class', 'sr-only');\n    this.ariaLiveRegion.style.position = 'absolute';\n    this.ariaLiveRegion.style.left = '-10000px';\n    this.ariaLiveRegion.style.width = '1px';\n    this.ariaLiveRegion.style.height = '1px';\n    this.ariaLiveRegion.style.overflow = 'hidden';\n\n    if (document.body) {\n      document.body.appendChild(this.ariaLiveRegion);\n    } else {\n      // If body is not ready yet, wait for DOMContentLoaded\n      document.addEventListener('DOMContentLoaded', () => {\n        if (this.ariaLiveRegion) {\n          document.body.appendChild(this.ariaLiveRegion);\n        }\n      });\n    }\n  }\n\n  /**\n   * Announces a message to screen readers via aria-live region\n   * @param message The message to announce\n   */\n  public announce(message: string): void {\n    if (!this.ariaLiveRegion) {\n      return;\n    }\n\n    // Clear previous message\n    this.ariaLiveRegion.textContent = '';\n\n    // Announce new message after a brief delay to ensure screen readers pick it up\n    setTimeout(() => {\n      if (this.ariaLiveRegion) {\n        this.ariaLiveRegion.textContent = message;\n      }\n    }, 100);\n  }\n\n  /**\n   * Moves focus to the first focusable element within a dialog\n   * @param dialogId The ID of the dialog element\n   * @param announceMessage Optional message to announce when dialog opens\n   * @param buttonId Optional ID of the button that triggered the dialog (for reliable focus return)\n   */\n  public moveFocusToDialog(dialogId: string, announceMessage?: string, buttonId?: string): void {\n    if (typeof document === 'undefined') {\n      return; // SSR guard\n    }\n\n    // Store the button element for reliable focus return\n    // Use buttonId if provided, otherwise fall back to activeElement\n    if (buttonId) {\n      const button = document.getElementById(buttonId);\n      if (button) {\n        this.previousActiveElement = button;\n      }\n    } else {\n      const activeElement = document.activeElement as HTMLElement;\n      if (activeElement && activeElement !== document.body) {\n        this.previousActiveElement = activeElement;\n      }\n    }\n\n    // Find dialog and first focusable element\n    const dialog = document.getElementById(dialogId);\n    if (!dialog) {\n      console.warn(`Dialog with ID \"${dialogId}\" not found`);\n      return;\n    }\n\n    // Check if dialog is visible\n    if (dialog.classList.contains('hidden') || dialog.style.display === 'none') {\n      console.warn(`Dialog \"${dialogId}\" is not visible`);\n      return;\n    }\n\n    // Track active dialog and set up focus cycling\n    this.activeDialogId = dialogId;\n    this.setupFocusCycling(dialog);\n\n    const firstFocusable = this.findFirstFocusableElement(dialog);\n\n    if (firstFocusable) {\n      // Small delay to ensure dialog is fully rendered\n      setTimeout(() => {\n        firstFocusable.focus();\n      }, 50);\n    }\n\n    // Announce dialog opening to screen readers\n    if (announceMessage) {\n      this.announce(announceMessage);\n    }\n  }\n\n  /**\n   * Sets up focus cycling so that tabbing past the last element returns to the toolbar\n   * @param dialog The dialog element\n   */\n  private setupFocusCycling(dialog: HTMLElement): void {\n    // Clean up any existing handler\n    this.cleanupFocusCycling();\n\n    this.keydownHandler = (event: KeyboardEvent) => {\n      if (event.key !== 'Tab') {\n        return;\n      }\n\n      const focusableElements = this.getAllFocusableElements(dialog);\n      if (focusableElements.length === 0) {\n        return;\n      }\n\n      const firstElement = focusableElements[0];\n      const lastElement = focusableElements[focusableElements.length - 1];\n      const activeElement = document.activeElement;\n\n      // Tab on last element -> go to toolbar (previous element that opened the dialog)\n      if (!event.shiftKey && activeElement === lastElement) {\n        event.preventDefault();\n        if (this.previousActiveElement) {\n          this.previousActiveElement.focus();\n        }\n      }\n      // Shift+Tab on first element -> go to last element in dialog\n      else if (event.shiftKey && activeElement === firstElement) {\n        event.preventDefault();\n        lastElement.focus();\n      }\n    };\n\n    document.addEventListener('keydown', this.keydownHandler);\n  }\n\n  /**\n   * Cleans up focus cycling event listeners\n   */\n  private cleanupFocusCycling(): void {\n    if (this.keydownHandler) {\n      document.removeEventListener('keydown', this.keydownHandler);\n      this.keydownHandler = null;\n    }\n    this.activeDialogId = null;\n  }\n\n  /**\n   * Gets all focusable elements within a container\n   * @param container The container element\n   * @returns Array of focusable elements\n   */\n  private getAllFocusableElements(container: HTMLElement): HTMLElement[] {\n    const focusableSelectors = [\n      'a[href]',\n      'area[href]',\n      'input:not([disabled]):not([type=\"hidden\"])',\n      'select:not([disabled])',\n      'textarea:not([disabled])',\n      'button:not([disabled])',\n      'iframe',\n      'object',\n      'embed',\n      '[contenteditable]',\n      '[tabindex]:not([tabindex=\"-1\"])',\n    ].join(',');\n\n    const elements = container.querySelectorAll<HTMLElement>(focusableSelectors);\n    return Array.from(elements).filter((el) => this.isVisible(el));\n  }\n\n  /**\n   * Returns focus to the previously focused element (typically the button that opened the dialog)\n   * @param announceMessage Optional message to announce when dialog closes\n   */\n  public returnFocusToPrevious(announceMessage?: string): void {\n    // Clean up focus cycling\n    this.cleanupFocusCycling();\n\n    if (this.previousActiveElement) {\n      this.previousActiveElement.focus();\n      this.previousActiveElement = null;\n    }\n\n    // Announce dialog closing to screen readers\n    if (announceMessage) {\n      this.announce(announceMessage);\n    }\n  }\n\n  /**\n   * Finds the first focusable element within a container\n   * @param container The container element to search within\n   * @returns The first focusable element or null\n   */\n  private findFirstFocusableElement(container: HTMLElement | null): HTMLElement | null {\n    if (!container) {\n      return null;\n    }\n\n    const focusableSelectors = [\n      'a[href]',\n      'area[href]',\n      'input:not([disabled]):not([type=\"hidden\"])',\n      'select:not([disabled])',\n      'textarea:not([disabled])',\n      'button:not([disabled])',\n      'iframe',\n      'object',\n      'embed',\n      '[contenteditable]',\n      '[tabindex]:not([tabindex=\"-1\"])',\n    ].join(',');\n\n    const focusableElements = container.querySelectorAll<HTMLElement>(focusableSelectors);\n\n    // Return first visible and focusable element\n    for (const element of Array.from(focusableElements)) {\n      if (this.isVisible(element)) {\n        return element;\n      }\n    }\n\n    return null;\n  }\n\n  /**\n   * Checks if an element is visible\n   * @param element The element to check\n   * @returns True if the element is visible\n   */\n  private isVisible(element: HTMLElement): boolean {\n    const style = window.getComputedStyle(element);\n    return style.display !== 'none' && style.visibility !== 'hidden' && element.offsetParent !== null;\n  }\n}\n","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  caseSensitive: boolean;\n  entireWord: boolean;\n  findPrevious: boolean;\n  highlightAll: boolean;\n  matchDiacritics: boolean;\n  query: string | string[] | RegExp;\n  type: 'findagain' | 'highlightallchange' | 'casesensitivitychange' | 'entirewordchange' | 'diacriticmatchingchange' | 'find';\n}\n\nexport interface FindResult {\n  state: FindState;\n  previous: any;\n  matchesCount: FindResultMatchesCount;\n  rawquery: string;\n}\n","export enum PdfCursorTools {\n  SELECT = 0,\n  HAND = 1,\n  ZOOM = 2\n}\n","import { EditorAnnotation } from './editor-annotations';\nimport { OptionalContentConfig } from './optional_content_config';\nimport { PDFPageView } from './pdf_page_view';\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  renderView(pageView: any): void; // Added for iOS canvas optimization\n}\n\nexport interface IPDFViewer {\n  maxZoom: number;\n  minZoom: number;\n  maxCanvasPixels: number; // Added for iOS canvas optimization\n  setTextLayerMode(textLayerMode: number): unknown;\n  annotationEditorMode: any;\n  currentPageLabel: string | undefined;\n  currentPageNumber: number;\n  enablePrintAutoRotate: boolean;\n  currentScaleValue: string | number;\n  pagesRotation: 0 | 90 | 180 | 270;\n  removePageBorders: boolean;\n  renderingQueue: IPDFRenderingQueue;\n  scrollMode: ScrollModeType;\n  pageViewMode: PageViewModeType;\n  spreadMode: 0 | 1 | 2;\n  _pages: Array<PDFPageView>;\n  addPageToRenderQueue(pageIndex: number): boolean;\n  _getVisiblePages(): Array<any>;\n  optionalContentConfigPromise: Promise<OptionalContentConfig> | null;\n  _scrollPageIntoView({ pageDiv, pageSpot, pageNumber }: { pageDiv: HTMLElement; pageSpot: any; pageNumber: number }): void;\n  getSerializedAnnotations(): EditorAnnotation[] | null; // #1783 added by ngx-extended-pdf-viewer\n  addEditorAnnotation(serialized: string | EditorAnnotation): Promise<void>; // #1783 added by ngx-extended-pdf-viewer\n  removeEditorAnnotations(filter?: (serialized: EditorAnnotation) => boolean): void; // #1783 added by ngx-extended-pdf-viewer\n  getPageView(index: number): PDFPageView;\n  destroyBookMode(): void;\n  stopRendering(): void;\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  'attachmentsView',\n  'authorField',\n  'contextFirstPage',\n  'contextLastPage',\n  'contextPageRotateCcw',\n  'contextPageRotateCw',\n  'creationDateField',\n  'creatorField',\n  'currentOutlineItem',\n  'cursorHandTool',\n  'cursorSelectTool',\n  'customScaleOption',\n  'documentProperties',\n  'documentPropertiesClose',\n  'download',\n  'editorSignatureButton',\n  'primaryEditorFreeText',\n  'primaryEditorHighlight',\n  'primaryEditorInk',\n  'primaryEditorStamp',\n  'editorModeButtons',\n  'editorNone',\n  //  'editorSignatureButton',\n  //  'editorSignatureAddSignature',\n  'editorStampAddImage',\n  'errorClose',\n  'errorMessage',\n  'errorMoreInfo',\n  'errorShowLess',\n  'errorShowMore',\n  'errorWrapper',\n  'fileNameField',\n  'fileSizeField',\n  'findbar',\n  'findCurrentPage',\n  'findEntireWord',\n  'findFuzzy',\n  'findHighlightAll',\n  'findIgnoreAccents',\n  'findInput',\n  'findInputMultiline',\n  'findMatchCase',\n  'findMatchDiacritics',\n  'findMsg',\n  'findMultipleSearchTexts',\n  'findNext',\n  'findPrevious',\n  'findRange',\n  'findResultsCount',\n  'firstPage',\n  'individualWordsMode',\n  'individualWordsModeLabel',\n  'keywordsField',\n  'lastPage',\n  'linearizedField',\n  'modificationDateField',\n  'movePageUpButton',\n  'movePageDownButton',\n  'next',\n  'numPages',\n  'openFile',\n  'outerContainer',\n  'outerContainer',\n  'outlineOptionsContainer',\n  'outlineView',\n  'pageCountField',\n  'pageNumber',\n  'pageRotateCcw',\n  'pageRotateCw',\n  'pageSizeField',\n  'password',\n  'passwordCancel',\n  'passwordSubmit',\n  'passwordText',\n  'presentationMode',\n  'previous',\n  'printButton',\n  'producerField',\n  'scaleSelect',\n  'scaleSelectContainer',\n  'scrollHorizontal',\n  'scrollPage',\n  'scrollVertical',\n  'scrollWrapped',\n  'secondaryDownload',\n  'secondaryOpenFile',\n  'secondaryPresentationMode',\n  'secondaryPrintButton',\n  'secondaryToolbar',\n  'secondaryToolbarButtonContainer',\n  'secondaryToolbarToggle',\n  'secondaryViewBookmark',\n  'sidebarResizer',\n  'primarySidebarToggle',\n  'spreadEven',\n  'spreadNone',\n  'spreadOdd',\n  'subjectField',\n  'thumbnailView',\n  'titleField',\n  'toolbarViewer',\n  'versionField',\n  'viewAttachments',\n  'viewAttachments',\n  'viewBookmark',\n  'viewerContainer',\n  'viewFind',\n  'viewLayers',\n  'viewOutline',\n  'viewOutline',\n  'viewThumbnail',\n  'viewThumbnail',\n  'primaryZoomIn',\n  'primaryZoomOut',\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      return;\n    }\n\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    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 { ChangeDetectorRef, EventEmitter, NgZone } from '@angular/core';\nimport { FormDataType } from './ngx-extended-pdf-viewer.component';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport type HtmlFormElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\nexport class NgxFormSupport {\n  /** Maps the internal ids of the annotations of pdf.js to their field name */\n  private formIdToFullFieldName: { [key: string]: string } = {};\n\n  private formIdToField: { [key: string]: HtmlFormElement } = {};\n\n  private radioButtons: { [key: string]: Array<HTMLInputElement> } = {};\n\n  public formData: FormDataType = {};\n\n  public initialFormDataStoredInThePDF: FormDataType = {};\n\n  public formDataChange = new EventEmitter<FormDataType>();\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public ngZone!: NgZone; // set during the initializaion of the PDF viewer\n\n  public cdr!: ChangeDetectorRef; // set during the initializaion of the PDF viewer\n\n  public reset() {\n    this.formData = {};\n    this.formIdToFullFieldName = {};\n  }\n\n  public registerFormSupportWithPdfjs(PDFViewerApplication: IPDFViewerApplication): void {\n    this.PDFViewerApplication = PDFViewerApplication;\n    (globalThis as any).getFormValueFromAngular = (key: string) => this.getFormValueFromAngular(key);\n    (globalThis as any).updateAngularFormValue = (key: string | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement, value: { value: string }) =>\n      this.updateAngularFormValueCalledByPdfjs(key, value);\n    (globalThis as any).registerAcroformField = (\n      id: string,\n      element: HtmlFormElement,\n      value: string | Array<string>,\n      radioButtonValueName: string,\n      initialValueFromPDF: string,\n    ) => this.registerAcroformField(id, element, value, radioButtonValueName, initialValueFromPDF);\n\n    (globalThis as any).registerXFAField = (element: HtmlFormElement, value: { value: string }, initialValueFromPDF: string) =>\n      this.registerXFAField(element, value, initialValueFromPDF);\n  }\n\n  private registerAcroformField(\n    id: string,\n    element: HtmlFormElement,\n    value: null | string | Array<string>,\n    radioButtonValueName: string,\n    initialFormValueFromPDF: string,\n  ): void {\n    const fieldName = element.name;\n    this.formIdToField[id] = element;\n    this.formIdToFullFieldName[id] = fieldName;\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      const groupName = fieldName;\n      this.formIdToFullFieldName[id] = groupName;\n      if (value) {\n        this.formData[groupName] = radioButtonValueName;\n        this.initialFormDataStoredInThePDF[groupName] = initialFormValueFromPDF;\n      }\n      element.setAttribute('exportValue', radioButtonValueName);\n      if (!this.radioButtons[groupName]) {\n        this.radioButtons[groupName] = [];\n      }\n      this.radioButtons[groupName].push(element);\n    } else if (element instanceof HTMLSelectElement) {\n      this.formData[fieldName] = this.getValueOfASelectField(element);\n      this.initialFormDataStoredInThePDF[fieldName] = initialFormValueFromPDF;\n    } else {\n      if (value !== undefined) {\n        this.formData[fieldName] = value;\n      }\n      this.initialFormDataStoredInThePDF[fieldName] = initialFormValueFromPDF;\n    }\n  }\n\n  private registerXFAField(element: HTMLElement, value: { value: string }, initialFormValueFromPDF: string): void {\n    const fullFieldName = this.findFullXFAName(element);\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      const id = element.getAttribute('fieldid') ?? '';\n      // remove the xfa name of the radio button itself form the field name,\n      // because the field name refers to the entire group of relatated radio buttons\n      const groupName = fullFieldName.substring(0, fullFieldName.lastIndexOf('.'));\n      this.formIdToFullFieldName[id] = groupName;\n      this.formData[groupName] = value?.value;\n      this.initialFormDataStoredInThePDF[groupName] = initialFormValueFromPDF;\n\n      if (!this.radioButtons[groupName]) {\n        this.radioButtons[groupName] = [];\n      }\n      this.radioButtons[groupName].push(element);\n    } else if (element instanceof HTMLInputElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else if (element instanceof HTMLSelectElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else if (element instanceof HTMLTextAreaElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else {\n      console.error(\"Couldn't register an XFA form field\", element);\n    }\n  }\n\n  private getValueOfASelectField(selectElement: HTMLSelectElement): null | string | Array<string> {\n    const { options, multiple } = selectElement;\n    if (!multiple) {\n      return options.selectedIndex === -1 ? null : options[options.selectedIndex]['value'];\n    }\n    return Array.prototype.filter.call(options, (option) => option.selected).map((option) => option['value']);\n  }\n\n  private getFormValueFromAngular(element: HTMLElement | string): Object {\n    let key: string;\n    if (element instanceof HTMLElement) {\n      const fieldName = this.findXFAName(element);\n      if (fieldName) {\n        if (this.formData.hasOwnProperty(fieldName)) {\n          key = fieldName;\n        } else {\n          key = this.findFullXFAName(element);\n        }\n      } else {\n        console.error(\"Couldn't find the field name or XFA name of the form field\", element);\n        return { value: null };\n      }\n    } else {\n      key = element;\n    }\n    return { value: this.formData[key] };\n  }\n\n  private findXFAName(element: HTMLElement): string {\n    let parentElement: HTMLElement | null | undefined = element;\n    while (!parentElement.getAttribute('xfaname') && parentElement.parentElement) {\n      parentElement = parentElement.parentElement;\n    }\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      do {\n        parentElement = parentElement?.parentElement;\n      } while (!parentElement?.getAttribute('xfaname') && parentElement);\n    }\n    let fieldName = parentElement?.getAttribute('xfaname');\n    if (!fieldName) {\n      throw new Error(\"Couldn't find the xfaname of the field\");\n    }\n    return fieldName;\n  }\n\n  private findFullXFAName(element: HTMLElement): string {\n    let parentElement = element;\n    let fieldName = '';\n    while (parentElement instanceof HTMLElement && parentElement.parentElement) {\n      const xfaName = parentElement.getAttribute('xfaname');\n      if (xfaName) {\n        fieldName = xfaName + '.' + fieldName;\n      }\n      parentElement = parentElement.parentElement;\n    }\n    if (!fieldName) {\n      throw new Error(\"Couldn't find the xfaname of the field\");\n    }\n    fieldName = fieldName.substring(0, fieldName.length - 1);\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      // ignore the last part of the xfaName because it's actually the value of the field\n      return fieldName.substring(0, fieldName.lastIndexOf('.'));\n    }\n    return fieldName;\n  }\n\n  private updateAngularFormValueCalledByPdfjs(\n    key: string | HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement,\n    value: { value?: string; formattedValue?: string },\n  ): void {\n    if (!this.formData) {\n      this.formData = {};\n    }\n\n    // Ignore formattedValue-only updates to prevent clearing Angular form data\n    // The formattedValue is just for display formatting, not actual user input\n    if (value.formattedValue !== undefined && value.value === undefined) {\n      return;\n    }\n\n    if (typeof key === 'string') {\n      const acroFormKey = this.formIdToFullFieldName[key];\n      const fullKey = acroFormKey ?? Object.values(this.formIdToFullFieldName).find((k) => k === key || k.endsWith('.' + key));\n      if (fullKey) {\n        const field = this.formIdToField[key];\n        let change = this.doUpdateAngularFormValue(field, value, fullKey);\n        if (change) {\n          this.ngZone.run(() => {\n            this.formDataChange.emit(this.formData);\n            this.cdr.detectChanges();\n          });\n        }\n      } else {\n        console.error(\"Couldn't find the field with the name \" + key);\n      }\n    } else {\n      let change = false;\n      const shortFieldName = this.findXFAName(key);\n      if (this.formData.hasOwnProperty(shortFieldName)) {\n        change = this.doUpdateAngularFormValue(key, value, shortFieldName);\n      }\n      const fullFieldName = this.findFullXFAName(key);\n      if (fullFieldName !== shortFieldName) {\n        change ||= this.doUpdateAngularFormValue(key, value, fullFieldName);\n      }\n      if (change) {\n        this.ngZone.run(() => {\n          this.formDataChange.emit(this.formData);\n          this.cdr.detectChanges();\n        });\n      }\n    }\n  }\n\n  private doUpdateAngularFormValue(field: HtmlFormElement, value: { value?: string; formattedValue?: string }, fullKey: string) {\n    let change = false;\n    // Use the actual user input value, not the formatted display value\n    const actualValue = value.value;\n    if (field instanceof HTMLInputElement && field.type === 'checkbox') {\n      const exportValue = field.getAttribute('exportvalue');\n      if (exportValue) {\n        if (actualValue) {\n          if (this.formData[fullKey] !== exportValue) {\n            this.formData[fullKey] = exportValue;\n            change = true;\n          }\n        } else {\n          if (this.formData[fullKey] !== false) {\n            this.formData[fullKey] = false;\n            change = true;\n          }\n        }\n      } else if (this.formData[fullKey] !== actualValue) {\n        this.formData[fullKey] = actualValue ?? '';\n        change = true;\n      }\n    } else if (field instanceof HTMLInputElement && field.type === 'radio') {\n      const exportValue = field.getAttribute('exportvalue') ?? field.getAttribute('xfaon');\n      if (actualValue) {\n        if (this.formData[fullKey] !== exportValue) {\n          this.formData[fullKey] = exportValue;\n          change = true;\n        }\n      }\n    } else if (this.formData[fullKey] !== actualValue) {\n      this.formData[fullKey] = actualValue ?? '';\n      change = true;\n    }\n    return change;\n  }\n\n  public updateFormFieldsInPdfCalledByNgOnChanges(previousFormData: Object) {\n    if (!this.PDFViewerApplication?.pdfDocument?.annotationStorage) {\n      // ngOnChanges calls this method too early - so just ignore it\n      return;\n    }\n\n    for (const key in this.formData) {\n      if (this.formData.hasOwnProperty(key)) {\n        const newValue = this.formData[key];\n        if (newValue !== previousFormData[key]) {\n          this.setFieldValueAndUpdateAnnotationStorage(key, newValue);\n        }\n      }\n    }\n\n    for (const key in previousFormData) {\n      if (previousFormData.hasOwnProperty(key) && previousFormData[key]) {\n        let hasPreviousValue = this.formData.hasOwnProperty(key);\n        if (!hasPreviousValue) {\n          const fullKey = Object.keys(this.formData).find((k) => k === key || k.endsWith('.' + key));\n          if (fullKey) {\n            hasPreviousValue = this.formData.hasOwnProperty(fullKey);\n          }\n        }\n\n        if (!hasPreviousValue) {\n          this.setFieldValueAndUpdateAnnotationStorage(key, null);\n        }\n      }\n    }\n\n    // #2691 modified by ngx-extended-pdf-viewer\n    // After programmatically setting form values, update the baseline for change detection\n    if (this.PDFViewerApplication?.setInitialAnnotationValues) {\n      setTimeout(() => {\n        this.PDFViewerApplication?.setInitialAnnotationValues?.();\n      }, 10); // Small delay to ensure all form updates are processed\n    }\n    // #2691 end of modification by ngx-extended-pdf-viewer\n  }\n\n  private setFieldValueAndUpdateAnnotationStorage(key: string, newValue: any) {\n    const radios = this.findRadioButtonGroup(key);\n    if (radios) {\n      radios.forEach((r) => {\n        const activeValue = r.getAttribute('exportValue') ?? r.getAttribute('xfaon');\n        r.checked = activeValue === newValue;\n      });\n      const updateFromAngular = new CustomEvent('updateFromAngular', {\n        detail: newValue,\n      });\n      radios[0].dispatchEvent(updateFromAngular);\n    } else {\n      const fieldIds = this.findFormIdsFromFieldName(key);\n      if (fieldIds) {\n        fieldIds.forEach((fieldId) => {\n          const htmlField = this.formIdToField[fieldId];\n\n          if (htmlField) {\n            if (htmlField instanceof HTMLInputElement && htmlField.type === 'checkbox') {\n              let activeValue = htmlField.getAttribute('xfaon') ?? htmlField.getAttribute('exportvalue') ?? true;\n              if (newValue === true || newValue === false) {\n                activeValue = true;\n              }\n              htmlField.checked = activeValue === newValue;\n            } else if (htmlField instanceof HTMLSelectElement) {\n              this.populateSelectField(htmlField, newValue);\n            } else {\n              // textareas and input fields\n              htmlField.value = newValue;\n            }\n            const updateFromAngular = new CustomEvent('updateFromAngular', {\n              detail: newValue,\n            });\n            htmlField.dispatchEvent(updateFromAngular);\n          } else {\n            console.error(\"Couldn't set the value of the field\", key);\n          }\n        });\n      }\n    }\n  }\n\n  private populateSelectField(htmlField: HTMLSelectElement, newValue: any) {\n    if (htmlField.multiple) {\n      const { options } = htmlField;\n      const newValueArray = newValue as Array<string>;\n      for (let i = 0; i < options.length; i++) {\n        const option = options.item(i);\n        if (option) {\n          option.selected = newValueArray.some((o) => o === option.value);\n        }\n      }\n    } else {\n      htmlField.value = newValue;\n    }\n  }\n\n  private findFormIdsFromFieldName(fieldName: string): string[] | undefined {\n    if (Object.entries(this.formIdToFullFieldName).length === 0) {\n      // sometimes, ngOnChanges() is called before initializing the PDF file\n      return undefined;\n    }\n    const matchingEntries = Object.entries(this.formIdToFullFieldName).filter((entry) => entry[1] === fieldName || entry[1].endsWith('.' + fieldName));\n    if (matchingEntries.length === 0) {\n      console.log(\"Couldn't find the field \" + fieldName);\n      return undefined;\n    }\n    return matchingEntries.map((e) => e[0]);\n  }\n\n  private findRadioButtonGroup(fieldName: string): Array<HTMLInputElement> | null {\n    const matchingEntries = Object.entries(this.radioButtons).filter((entry) => entry[0].endsWith('.' + fieldName) || entry[0] === fieldName);\n    if (matchingEntries.length === 0) {\n      return null;\n    }\n    if (matchingEntries.length > 1) {\n      console.log(\n        'More than one radio button group name matches this name. Please use the qualified field name',\n        matchingEntries.map((radio) => radio[0]),\n      );\n      console.log('ngx-extended-pdf-viewer uses the first matching field (which may not be the topmost field on your PDF form): ' + matchingEntries[0][0]);\n    }\n    return matchingEntries[0][1];\n  }\n}\n","export enum PdfSidebarView {\n  UNKNOWN = -1,\n  NONE = 0,\n  THUMBS = 1, // Default value.\n  OUTLINE = 2,\n  ATTACHMENTS = 3,\n  LAYERS = 4,\n}\n","import { Injectable, effect, signal } from '@angular/core';\nimport { getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\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 onPDFJSInitSignal = signal<IPDFViewerApplication | undefined>(undefined);\n\n  public pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n\n  public constructor() {\n    effect(() => {\n      if (this.onPDFJSInitSignal()) {\n        this.pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n      }\n    });\n  }\n}\n","import { effect, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { AnnotationEditorParamsType, AnnotationMode, EditorAnnotation, HighlightEditorAnnotation, StampEditorAnnotation } from './options/editor-annotations';\nimport { PdfLayer } from './options/optional_content_config';\nimport { PDFPrintRange } from './options/pdf-print-range';\nimport { IPDFViewerApplication, PDFDocumentProxy, PDFFindParameters, PDFPageProxy, TextItem, TextMarkedContent } from './options/pdf-viewer-application';\nimport { ZoomType } from './options/zoom-type';\nimport { PDFNotificationService } from './pdf-notification-service';\n\nexport interface FindOptions {\n  highlightAll?: boolean;\n  matchCase?: boolean;\n  wholeWords?: boolean;\n  matchDiacritics?: boolean;\n  dontScrollIntoView?: boolean;\n  findMultiple?: boolean;\n  regexp?: boolean;\n  useSecondaryFindcontroller?: boolean;\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\ntype DirectionType = 'ltr' | 'rtl' | 'both' | undefined;\n\nexport interface PdfImageParameters {\n  urlOrDataUrl: string;\n  page?: number;\n  left?: number | string;\n  bottom?: number | string;\n  right?: number | string;\n  top?: number | string;\n  rotation?: 0 | 90 | 180 | 270;\n}\n\nexport interface Line {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  direction: DirectionType;\n  text: string;\n}\nexport interface Section {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  direction: DirectionType;\n  lines: Array<Line>;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxExtendedPdfViewerService {\n  public ngxExtendedPdfViewerInitialized = false;\n\n  public secondaryMenuIsEmpty = false;\n\n  private readonly renderer: Renderer2;\n  private PDFViewerApplication?: IPDFViewerApplication;\n\n  constructor(\n    private readonly rendererFactory: RendererFactory2,\n    notificationService: PDFNotificationService,\n  ) {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public find(text: string | string[] | RegExp, options: FindOptions = {}): Array<Promise<number>> | undefined {\n    if (!this.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call find() later.\");\n      return undefined;\n    } else {\n      if (!options.useSecondaryFindcontroller) {\n        const highlightAllCheckbox = document.getElementById('findHighlightAll') as HTMLInputElement;\n        if (highlightAllCheckbox) {\n          highlightAllCheckbox.checked = options.highlightAll ?? false;\n        }\n\n        const matchCaseCheckbox = document.getElementById('findMatchCase') as HTMLInputElement;\n        if (matchCaseCheckbox) {\n          matchCaseCheckbox.checked = options.matchCase ?? false;\n        }\n\n        const findMultipleCheckbox = document.getElementById('findMultiple') as HTMLInputElement;\n        if (findMultipleCheckbox) {\n          findMultipleCheckbox.checked = options.findMultiple ?? false;\n        }\n\n        const entireWordCheckbox = document.getElementById('findEntireWord') as HTMLInputElement;\n        if (entireWordCheckbox) {\n          entireWordCheckbox.checked = options.wholeWords ?? false;\n        }\n\n        const matchDiacriticsCheckbox = document.getElementById('findMatchDiacritics') as HTMLInputElement;\n        if (matchDiacriticsCheckbox) {\n          matchDiacriticsCheckbox.checked = options.matchDiacritics ?? false;\n        }\n\n        const matchRegExpCheckbox = document.getElementById('matchRegExp') as HTMLInputElement;\n        if (matchRegExpCheckbox) {\n          matchRegExpCheckbox.checked = options.regexp ?? false;\n          if (matchRegExpCheckbox.checked) {\n            if (findMultipleCheckbox) {\n              findMultipleCheckbox.checked = false;\n            }\n            if (entireWordCheckbox) {\n              entireWordCheckbox.checked = false;\n            }\n\n            if (matchDiacriticsCheckbox) {\n              matchDiacriticsCheckbox.checked = false;\n            }\n          }\n          if (findMultipleCheckbox) {\n            findMultipleCheckbox.disabled = matchRegExpCheckbox.checked;\n          }\n          if (entireWordCheckbox) {\n            entireWordCheckbox.disabled = matchRegExpCheckbox.checked;\n          }\n\n          if (matchDiacriticsCheckbox) {\n            matchDiacriticsCheckbox.disabled = matchRegExpCheckbox.checked;\n          }\n        }\n\n        const inputField = document.getElementById('findInput') as HTMLInputElement;\n        if (inputField && typeof text === 'string') {\n          inputField.value = text;\n        }\n      }\n\n      const findParameters: PDFFindParameters = {\n        caseSensitive: options.matchCase ?? false,\n        entireWord: options.wholeWords ?? false,\n        highlightAll: options.highlightAll ?? false,\n        matchDiacritics: options.matchDiacritics ?? false,\n        findMultiple: options.findMultiple,\n        matchRegExp: options.regexp ?? false,\n        findPrevious: false,\n        query: text,\n        source: null,\n        type: 'find',\n        dontScrollIntoView: options.dontScrollIntoView ?? false,\n      };\n      const findController = options.useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n      const result = findController?.ngxFind(findParameters);\n      return result;\n    }\n  }\n\n  public findNext(useSecondaryFindcontroller: boolean = false): boolean {\n    if (!this.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 findController = useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n      findController?.ngxFindNext();\n      return true;\n    }\n  }\n\n  public findPrevious(useSecondaryFindcontroller: boolean = false): boolean {\n    if (!this.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 findController = useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n      findController?.ngxFindPrevious();\n      return true;\n    }\n  }\n\n  public print(printRange?: PDFPrintRange) {\n    if (this.PDFViewerApplication) {\n      const alreadyPrinting = this.PDFViewerApplication?.PDFPrintServiceFactory?.isInPDFPrintRange !== undefined;\n      if (!alreadyPrinting) {\n        // slow down hurried users clicking the print button multiple times\n        if (!printRange) {\n          printRange = {} as PDFPrintRange;\n        }\n        this.setPrintRange(printRange);\n        this.PDFViewerApplication?.printPdf();\n        this.PDFViewerApplication?.eventBus.on('afterprint', this.removePrintRange.bind(this), { once: true });\n      }\n    }\n  }\n\n  public removePrintRange() {\n    if (this.PDFViewerApplication?.PDFPrintServiceFactory) {\n      delete this.PDFViewerApplication.PDFPrintServiceFactory.isInPDFPrintRange;\n      delete this.PDFViewerApplication.PDFPrintServiceFactory.filteredPageCount;\n    }\n  }\n\n  public setPrintRange(printRange: PDFPrintRange) {\n    if (!this.PDFViewerApplication?.PDFPrintServiceFactory) {\n      console.error(\"The print service hasn't been initialized yet.\");\n      return;\n    }\n\n    this.PDFViewerApplication.PDFPrintServiceFactory.isInPDFPrintRange = (page: number) => this.isInPDFPrintRange(page, printRange);\n    this.PDFViewerApplication.PDFPrintServiceFactory.filteredPageCount = this.filteredPageCount(this.PDFViewerApplication?.pagesCount, printRange);\n  }\n\n  public filteredPageCount(pageCount: number, range: PDFPrintRange): number {\n    let result = 0;\n    for (let page = 0; 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      if (printRange.excluded.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 async getPageAsLines(pageNumber: number): Promise<Array<Line>> {\n    if (this.PDFViewerApplication) {\n      const pdfDocument = this.PDFViewerApplication?.pdfDocument;\n\n      const page = await pdfDocument.getPage(pageNumber);\n      const textSnippets = (await page.getTextContent()).items //\n        .filter((info) => !info['type']); // ignore the TextMarkedContent items\n\n      const snippets = textSnippets as Array<TextItem>;\n\n      let minX = Number.MAX_SAFE_INTEGER;\n      let minY = Number.MAX_SAFE_INTEGER;\n      let maxX = Number.MIN_SAFE_INTEGER;\n      let maxY = Number.MIN_SAFE_INTEGER;\n      let countLTR = 0;\n      let countRTL = 0;\n      let text = '';\n      let lines = new Array<Line>();\n      for (let i = 0; i < snippets.length; i++) {\n        const currentSnippet = snippets[i];\n        // #3065 modified by ngx-extended-pdf-viewer\n        // Always process the current snippet's text and bounds, regardless of hasEOL\n        const x = currentSnippet.transform[4];\n        const y = -currentSnippet.transform[5];\n        const width = currentSnippet.width;\n        const height = currentSnippet.height;\n        minX = Math.min(minX, x);\n        minY = Math.min(minY, y);\n        maxX = Math.max(maxX, x + width);\n        maxY = Math.max(maxY, y + height);\n        text += currentSnippet.str;\n        if (currentSnippet.dir === 'rtl') {\n          countRTL++;\n        }\n        if (currentSnippet.dir === 'ltr') {\n          countLTR++;\n        }\n        // #3065 end of modification by ngx-extended-pdf-viewer\n\n        let addIt = i === snippets.length - 1 || currentSnippet.hasEOL;\n        if (addIt) {\n          let direction: DirectionType = undefined;\n          if (countLTR > 0 && countRTL > 0) {\n            direction = 'both';\n          } else if (countLTR > 0) {\n            direction = 'ltr';\n          } else if (countRTL > 0) {\n            direction = 'rtl';\n          }\n          const line = {\n            direction,\n            x: minX,\n            y: minY,\n            width: maxX - minX,\n            height: maxY - minY,\n            text: text.trim(),\n          } as Line;\n          lines.push(line);\n          minX = Number.MAX_SAFE_INTEGER;\n          minY = Number.MAX_SAFE_INTEGER;\n          maxX = Number.MIN_SAFE_INTEGER;\n          maxY = Number.MIN_SAFE_INTEGER;\n          countLTR = 0;\n          countRTL = 0;\n          text = '';\n        }\n      }\n      return lines;\n    }\n    return [];\n  }\n\n  public async getPageAsText(pageNumber: number): Promise<string> {\n    if (!this.PDFViewerApplication) {\n      return '';\n    }\n    const pdfDocument = this.PDFViewerApplication?.pdfDocument;\n\n    const page = await pdfDocument.getPage(pageNumber);\n    const textSnippets = (await page.getTextContent()).items;\n    return this.convertTextInfoToText(textSnippets);\n  }\n\n  private convertTextInfoToText(textInfoItems: Array<TextItem | TextMarkedContent>): string {\n    if (!textInfoItems) {\n      return '';\n    }\n    return textInfoItems\n      .filter((info) => !info['type'])\n      .map((info: TextItem) => (info.hasEOL ? info.str + '\\n' : info.str))\n      .join('');\n  }\n\n  public async getPageAsCanvas(\n    pageNumber: number,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE,\n  ): Promise<HTMLCanvasElement | undefined> {\n    if (!this.PDFViewerApplication) {\n      return Promise.resolve(undefined);\n    }\n    const pdfDocument = this.PDFViewerApplication.pdfDocument;\n    const pdfPage = await pdfDocument.getPage(pageNumber);\n    return this.draw(pdfPage, scale, background, backgroundColorToReplace, annotationMode);\n  }\n\n  public async getPageAsImage(\n    pageNumber: number,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE,\n  ): Promise<string | undefined> {\n    const canvas = await this.getPageAsCanvas(pageNumber, scale, background, backgroundColorToReplace, annotationMode);\n    return canvas?.toDataURL();\n  }\n\n  private async draw(\n    pdfPage: PDFPageProxy,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE,\n  ): 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      annotationMode,\n    };\n    const renderTask = pdfPage.render(renderContext);\n\n    const dataUrlPromise = () => Promise.resolve(canvas);\n\n    return renderTask.promise.then(dataUrlPromise);\n  }\n\n  private getPageDrawContext(width: number, height: number): DrawContext {\n    const canvas = document.createElement('canvas');\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    this.renderer.setStyle(canvas, 'width', `${width}px`);\n    this.renderer.setStyle(canvas, 'height', `${height}px`);\n\n    return { ctx, canvas };\n  }\n\n  public async getCurrentDocumentAsBlob(): Promise<Blob | undefined> {\n    return (await this.PDFViewerApplication?.export()) || undefined;\n  }\n\n  public async getFormData(currentFormValues = true): Promise<Array<Object>> {\n    if (!this.PDFViewerApplication) {\n      return [];\n    }\n    const pdf: PDFDocumentProxy | undefined = this.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: any = this.PDFViewerApplication?.pdfDocument.annotationStorage.getValue(a.id, a.fieldName + '/' + a.exportValue, '');\n                a.value = currentValue?.value;\n              } else if (a.radioButton) {\n                const currentValue: any = this.PDFViewerApplication?.pdfDocument.annotationStorage.getValue(a.id, a.fieldName + '/' + a.fieldValue, '');\n                a.value = currentValue?.value;\n              } else {\n                const currentValue: any = this.PDFViewerApplication?.pdfDocument.annotationStorage.getValue(a.id, a.fieldName, '');\n                a.value = currentValue?.value;\n              }\n            } catch (exception) {\n              // just ignore it\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   * if it's out of range or if the viewer hasn't been initialized yet\n   */\n  public addPageToRenderQueue(pageIndex: number): boolean {\n    return this.PDFViewerApplication?.pdfViewer.addPageToRenderQueue(pageIndex) ?? false;\n  }\n\n  public isRenderQueueEmpty(): boolean {\n    const scrolledDown = true;\n    const renderExtra = false;\n    if (this.PDFViewerApplication) {\n      const nextPage = this.PDFViewerApplication.pdfViewer.renderingQueue.getHighestPriority(\n        this.PDFViewerApplication?.pdfViewer._getVisiblePages(),\n        this.PDFViewerApplication?.pdfViewer._pages,\n        scrolledDown,\n        renderExtra,\n      );\n      return !nextPage;\n    }\n    return true;\n  }\n\n  public hasPageBeenRendered(pageIndex: number): boolean {\n    if (!this.PDFViewerApplication) {\n      return false;\n    }\n    const pages = this.PDFViewerApplication?.pdfViewer._pages;\n    if (pages.length > pageIndex && pageIndex >= 0) {\n      const pageView = pages[pageIndex];\n      const hasBeenRendered = pageView.renderingState === 3;\n      return hasBeenRendered;\n    }\n    return false;\n  }\n\n  private sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n  public async renderPage(pageIndex: number): Promise<void> {\n    if (!this.hasPageBeenRendered(pageIndex)) {\n      await this.addPageToRenderQueue(pageIndex);\n      while (!this.hasPageBeenRendered(pageIndex)) {\n        await this.sleep(7);\n      }\n    }\n  }\n\n  public currentlyRenderedPages(): Array<number> {\n    if (!this.PDFViewerApplication) {\n      return [];\n    }\n    const pages = this.PDFViewerApplication?.pdfViewer._pages;\n    return pages.filter((page) => page.renderingState === 3).map((page) => page.id);\n  }\n\n  public numberOfPages(): number {\n    if (!this.PDFViewerApplication) {\n      return 0;\n    }\n    const pages = this.PDFViewerApplication?.pdfViewer._pages;\n    return pages.length;\n  }\n\n  public getCurrentlyVisiblePageNumbers(): Array<number> {\n    const app = this.PDFViewerApplication;\n    if (!app) {\n      return [];\n    }\n    const pages = (app.pdfViewer._getVisiblePages() as any).views as Array<any>;\n    return pages?.map((page) => page.id);\n  }\n\n  public async listLayers(): Promise<Array<PdfLayer> | undefined> {\n    if (!this.PDFViewerApplication) {\n      return [];\n    }\n\n    const optionalContentConfig = await this.PDFViewerApplication?.pdfViewer.optionalContentConfigPromise;\n    if (optionalContentConfig) {\n      const levelData = optionalContentConfig.getOrder();\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    if (!this.PDFViewerApplication) {\n      return;\n    }\n    const optionalContentConfig = await this.PDFViewerApplication?.pdfViewer.optionalContentConfigPromise;\n    if (optionalContentConfig) {\n      let isVisible = optionalContentConfig.getGroup(layerId).visible;\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      this.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 viewer = this.PDFViewerApplication?.pdfViewer as any;\n    viewer?.scrollPagePosIntoView(pageNumber, pageSpot);\n  }\n\n  /**\n   * Returns all editor annotations (drawings, text, images, highlights) in serialized format.\n   *\n   * **IMPORTANT - ID Behavior:**\n   * - Each annotation includes an `id` field for real-time event tracking via `annotationEditorEvent`\n   * - When re-applying annotations using `addEditorAnnotation()`, **new IDs are always assigned**\n   * - IDs are **not persistent** across sessions - they are temporary identifiers\n   * - If you need to store annotations for later use, you can safely **omit the `id` field**\n   *\n   * **Example - Storing and Re-applying Annotations:**\n   * ```typescript\n   * // Save annotations (IDs are optional to store)\n   * const annotations = pdfService.getSerializedAnnotations();\n   * const toStore = annotations.map(({ id, ...rest }) => rest); // Remove IDs\n   * localStorage.setItem('annotations', JSON.stringify(toStore));\n   *\n   * // Re-apply annotations (new IDs will be assigned automatically)\n   * const stored = JSON.parse(localStorage.getItem('annotations'));\n   * await pdfService.addEditorAnnotation(stored);\n   * ```\n   *\n   * @returns Array of serialized annotations with temporary IDs, or null if no annotations exist\n   */\n  public getSerializedAnnotations(): EditorAnnotation[] | null | undefined {\n    return this.PDFViewerApplication?.pdfViewer.getSerializedAnnotations();\n  }\n\n  // #3076 added by ngx-extended-pdf-viewer\n  /**\n   * Returns a single editor annotation by its ID.\n   *\n   * **IMPORTANT - ID Behavior:**\n   * - IDs are temporary and only valid during the current session\n   * - Useful for responding to `annotationEditorEvent` events\n   * - Do not rely on IDs to persist across document reloads or sessions\n   *\n   * @param id The temporary unique identifier of the annotation (from `annotationEditorEvent` or `getSerializedAnnotations()`)\n   * @returns The serialized annotation matching the ID, or null if not found\n   */\n  public getSerializedAnnotation(id: string): EditorAnnotation | null | undefined {\n    const annotations = this.PDFViewerApplication?.pdfViewer.getSerializedAnnotations();\n    if (!annotations || !Array.isArray(annotations)) {\n      return null;\n    }\n    return annotations.find((annotation) => annotation.id === id) || null;\n  }\n  // #3076 end of modification by ngx-extended-pdf-viewer\n\n  /**\n   * Programmatically adds one or more editor annotations to the PDF.\n   *\n   * **IMPORTANT - ID Behavior:**\n   * - Any `id` fields in the provided annotations are **ignored**\n   * - New unique IDs are always assigned automatically\n   * - This ensures no ID conflicts occur\n   * - The `id` field is optional when calling this method\n   *\n   * **Supported Annotation Types:**\n   * - Ink (drawings)\n   * - FreeText (text boxes)\n   * - Stamp (images)\n   * - Highlight\n   * - Popup (comments)\n   *\n   * @param serializedAnnotation A single annotation object, array of annotations, or JSON string\n   * @returns Promise that resolves when the annotation(s) have been added\n   *\n   * @example\n   * // Add a single annotation (with or without ID - both work the same)\n   * await pdfService.addEditorAnnotation({\n   *   annotationType: 3,\n   *   color: [255, 0, 0],\n   *   value: 'Hello',\n   *   pageIndex: 0,\n   *   rect: [100, 100, 200, 150],\n   *   rotation: 0\n   *   // id field is optional and will be ignored if provided\n   * });\n   */\n  public async addEditorAnnotation(serializedAnnotation: string | EditorAnnotation): Promise<void> {\n    // #3061 When the editor mode is NONE, PDF.js internally switches to FREETEXT mode temporarily,\n    // which causes the FreeText popup to flash. Prevent this by hiding the popup during the operation.\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    const popup = document.getElementById('editorFreeTextParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If mode is NONE and popup was hidden, keep it hidden during the temporary mode switch\n    if (currentMode === 0 && wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    await this.PDFViewerApplication?.pdfViewer.addEditorAnnotation(serializedAnnotation);\n\n    // #3061 Remove the temporary hiding class after the operation\n    if (currentMode === 0 && wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public removeEditorAnnotations(filter?: (serialized: object) => boolean): void {\n    this.PDFViewerApplication?.pdfViewer.removeEditorAnnotations(filter);\n  }\n\n  private async loadImageAsDataURL(imageUrl: string): Promise<Blob | string> {\n    if (imageUrl.startsWith('data:')) {\n      return imageUrl;\n    }\n    const response = await fetch(imageUrl);\n    if (!response.ok) {\n      throw new Error(`Failed to fetch the image from ${imageUrl}: ${response.statusText}`);\n    }\n\n    const imageBlob = await response.blob();\n    return imageBlob;\n  }\n\n  public async addImageToAnnotationLayer({ urlOrDataUrl, page, left, bottom, right, top, rotation }: PdfImageParameters): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      console.error('The PDF viewer has not been initialized yet.');\n      return;\n    }\n    let pageToModify: number;\n    if (page !== undefined) {\n      if (page !== this.currentPageIndex()) {\n        await this.renderPage(page);\n      }\n      pageToModify = page;\n    } else {\n      pageToModify = this.currentPageIndex() ?? 0;\n    }\n    const previousAnnotationEditorMode = this.PDFViewerApplication.pdfViewer.annotationEditorMode;\n\n    // #3061 Check if the stamp popup is currently hidden to prevent flashing\n    const popup = document.getElementById('editorStampParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If the popup was hidden, add a CSS class to keep it hidden during mode switch\n    if (wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    this.switchAnnotationEdtorMode(13);\n    const dataUrl = await this.loadImageAsDataURL(urlOrDataUrl);\n    const pageSize = this.PDFViewerApplication.pdfViewer._pages[pageToModify].pdfPage.view;\n    const leftDim = pageSize[0];\n    const bottomDim = pageSize[1];\n    const rightDim = pageSize[2];\n    const topDim = pageSize[3];\n    const width = rightDim - leftDim;\n    const height = topDim - bottomDim;\n    const imageWidth = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientWidth;\n    const imageHeight = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientHeight;\n    const leftPdf = this.convertToPDFCoordinates(left, width, 0, imageWidth);\n    const bottomPdf = this.convertToPDFCoordinates(bottom, height, 0, imageHeight);\n    const rightPdf = this.convertToPDFCoordinates(right, width, width, imageWidth);\n    const topPdf = this.convertToPDFCoordinates(top, height, height, imageHeight);\n\n    const stampAnnotation: StampEditorAnnotation = {\n      annotationType: 13,\n      pageIndex: pageToModify,\n      bitmapUrl: dataUrl,\n      rect: [leftPdf, bottomPdf, rightPdf, topPdf],\n      rotation: rotation ?? 0,\n      isCopy: true,\n    };\n    this.addEditorAnnotation(stampAnnotation);\n    await this.sleep(10);\n    this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n\n    // #3061 Remove the temporary hiding class after switching back\n    if (wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public async addHighlightToAnnotationLayer(\n    color: number[],\n    page: number | undefined,\n    left: number | string,\n    bottom: number | string,\n    right: number | string,\n    top: number | string,\n    thickness: number = 12,\n    rotation: 0 | 90 | 180 | 270 = 0,\n    opacity: number = 0.5,\n  ): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      console.error('The PDF viewer has not been initialized yet.');\n      return;\n    }\n\n    let pageToModify: number;\n    if (page !== undefined) {\n      if (page !== this.currentPageIndex()) {\n        await this.renderPage(page);\n      }\n      pageToModify = page;\n    } else {\n      pageToModify = this.currentPageIndex() ?? 0;\n    }\n\n    const previousAnnotationEditorMode = this.PDFViewerApplication.pdfViewer.annotationEditorMode;\n\n    // #3061 Check if the popup is currently hidden to prevent flashing\n    const popup = document.getElementById('editorHighlightParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If the popup was hidden, add a CSS class to keep it hidden during mode switch\n    if (wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    this.switchAnnotationEdtorMode(9); // AnnotationEditorType.HIGHLIGHT\n\n    const pageSize = this.PDFViewerApplication.pdfViewer._pages[pageToModify].pdfPage.view;\n    const leftDim = pageSize[0];\n    const bottomDim = pageSize[1];\n    const rightDim = pageSize[2];\n    const topDim = pageSize[3];\n    const width = rightDim - leftDim;\n    const height = topDim - bottomDim;\n    const pageWidth = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientWidth;\n    const pageHeight = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientHeight;\n\n    const leftPdf = this.convertToPDFCoordinates(left, width, 0, pageWidth);\n    const bottomPdf = this.convertToPDFCoordinates(bottom, height, 0, pageHeight);\n    const rightPdf = this.convertToPDFCoordinates(right, width, width, pageWidth);\n    const topPdf = this.convertToPDFCoordinates(top, height, height, pageHeight);\n\n    // Create quadPoints object with numeric keys (matching export format)\n    const quadPoints: any = {};\n    quadPoints[0] = leftPdf; // x1 - left edge start\n    quadPoints[1] = topPdf; // y1 - top edge start\n    quadPoints[2] = rightPdf; // x2 - right edge end\n    quadPoints[3] = topPdf; // y2 - top edge end\n    quadPoints[4] = leftPdf; // x3 - left edge start (bottom)\n    quadPoints[5] = bottomPdf; // y3 - bottom edge start\n    quadPoints[6] = rightPdf; // x4 - right edge end (bottom)\n    quadPoints[7] = bottomPdf; // y4 - bottom edge end\n\n    const highlightAnnotation: HighlightEditorAnnotation = {\n      annotationType: 9,\n      color: color,\n      opacity: opacity,\n      thickness: thickness,\n      quadPoints: quadPoints,\n      outlines: [\n        [\n          // Single outline rectangle\n          leftPdf,\n          bottomPdf, // Bottom-left\n          leftPdf,\n          topPdf, // Top-left\n          rightPdf,\n          topPdf, // Top-right\n          rightPdf,\n          bottomPdf, // Bottom-right\n        ],\n      ],\n      pageIndex: pageToModify,\n      rect: [leftPdf, bottomPdf, rightPdf, topPdf],\n      rotation: rotation,\n      isCopy: true,\n    };\n\n    this.addEditorAnnotation(highlightAnnotation);\n    await this.sleep(10);\n    this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n\n    // #3061 Remove the temporary hiding class after switching back\n    if (wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public currentPageIndex(): number | undefined {\n    const viewer = this.PDFViewerApplication?.pdfViewer;\n    if (viewer) {\n      return viewer.currentPageNumber - 1;\n    }\n    return undefined;\n  }\n\n  private convertToPDFCoordinates(value: ZoomType, maxValue: number, defaultValue: number, imageMaxValue: number): number {\n    if (!value) {\n      return defaultValue;\n    }\n    if (typeof value === 'string') {\n      if (value.endsWith('%')) {\n        return (parseInt(value, 10) / 100) * maxValue;\n      } else if (value.endsWith('px')) {\n        return parseInt(value, 10) * (maxValue / imageMaxValue);\n      } else {\n        return parseInt(value, 10);\n      }\n    } else {\n      return value;\n    }\n  }\n\n  public switchAnnotationEdtorMode(mode: number): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', { mode });\n  }\n\n  public set editorFontSize(size: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.FREETEXT_SIZE, size);\n  }\n\n  public set editorFontColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.FREETEXT_COLOR, color);\n  }\n\n  public set editorInkColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.INK_COLOR, color);\n  }\n\n  public set editorInkOpacity(opacity: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.INK_OPACITY, opacity);\n  }\n\n  public set editorInkThickness(thickness: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.INK_THICKNESS, thickness);\n  }\n\n  public set editorHighlightColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_COLOR, color);\n  }\n\n  public set editorHighlightDefaultColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR, color);\n  }\n\n  public set editorHighlightShowAll(showAll: boolean) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, showAll);\n  }\n\n  public set editorHighlightThickness(thickness: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, thickness);\n  }\n\n  public setEditorProperty(editorPropertyType: number, value: any): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditorparams', { type: editorPropertyType, value });\n    this.PDFViewerApplication?.eventBus.dispatch('annotationeditorparamschanged', { details: [[editorPropertyType, value]] });\n  }\n\n  public getCurrentPage(): number {\n    if (!this.PDFViewerApplication) {\n      return 1;\n    }\n    return this.PDFViewerApplication.page ?? 1;\n  }\n\n  public getPageCount(): number {\n    if (!this.PDFViewerApplication) {\n      return 0;\n    }\n    return this.PDFViewerApplication.pagesCount ?? 0;\n  }\n\n  public movePage(fromIndex: number, toIndex: number): void {\n    if (!this.PDFViewerApplication) {\n      console.error('PDF viewer not initialized');\n      return;\n    }\n\n    // Check if page reordering is enabled\n    const enablePageReordering = (globalThis as any).pdfDefaultOptions?.enablePageReordering;\n    if (!enablePageReordering) {\n      console.error('Page reordering is not enabled. Set pdfDefaultOptions.enablePageReordering = true');\n      return;\n    }\n\n    // Validate indices (1-based)\n    const pageCount = this.getPageCount();\n    if (fromIndex < 1 || fromIndex > pageCount || toIndex < 1 || toIndex > pageCount) {\n      console.error(`Invalid page indices. fromIndex: ${fromIndex}, toIndex: ${toIndex}, pageCount: ${pageCount}`);\n      return;\n    }\n\n    if (fromIndex === toIndex) {\n      return; // No movement needed\n    }\n\n    try {\n      // Call the movePage function from app.js\n      if (this.PDFViewerApplication.movePage) {\n        this.PDFViewerApplication.movePage(fromIndex, toIndex);\n      } else {\n        console.error('movePage function not available in PDF viewer application');\n      }\n    } catch (error) {\n      console.error('Error moving page:', error);\n    }\n  }\n}\n","import { CSP_NONCE, Inject, Injectable } from '@angular/core';\nimport { TrustedTypesWindow } from 'trusted-types/lib';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PdfCspPolicyService {\n  private sanitizer: any = undefined; // TrustedTypePolicy;\n\n  @Inject(CSP_NONCE) private csp_nonce: string | null | undefined;\n\n  constructor() {}\n\n  public init() {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n    if (this.sanitizer) {\n      // already initialized\n      return;\n    }\n    const ttWindow = globalThis as unknown as TrustedTypesWindow;\n    if (ttWindow.trustedTypes) {\n      this.sanitizer = ttWindow.trustedTypes.createPolicy('pdf-viewer', {\n        createHTML: (input) => input,\n        createScriptURL: (input) => input,\n      });\n    }\n  }\n\n  public addTrustedCSS(styles: HTMLElement, css: string) {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n    this.init();\n    if (this.sanitizer) {\n      styles.textContent = this.sanitizer.createHTML(css) as unknown as any;\n    } else {\n      styles.textContent = css;\n    }\n  }\n\n  public addTrustedJavaScript(scripts: HTMLScriptElement, css: string) {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n    this.init();\n    if (this.sanitizer) {\n      scripts.src = this.sanitizer.createScriptURL(css) as unknown as any;\n    } else {\n      scripts.src = css;\n    }\n  }\n\n  public sanitizeHTML(html: string): string {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return '';\n    }\n    this.init();\n    if (this.sanitizer) {\n      return this.sanitizer.createHTML(html) as unknown as any;\n    } else {\n      return html;\n    }\n  }\n  public addTrustedHTML(element: HTMLElement, html: string) {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n    this.init();\n    if (this.sanitizer) {\n      element.innerHTML = this.sanitizer.createHTML(html) as unknown as any;\n    } else {\n      element.innerHTML = html;\n    }\n  }\n\n  public createTrustedHTML(html: string) {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n    this.init();\n    if (this.sanitizer) {\n      return this.sanitizer.createHTML(html) as unknown as any;\n    } else {\n      return html;\n    }\n  }\n\n  public generateTrustedURL(sourcePath) {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n    this.init();\n    if (this.sanitizer) {\n      return this.sanitizer.createScriptURL(sourcePath);\n    }\n    return sourcePath;\n  }\n}\n","import { CSP_NONCE, Inject, Injectable, OnDestroy, effect, signal } from '@angular/core';\nimport { getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { PdfCspPolicyService } from './pdf-csp-policy.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PDFScriptLoaderService implements OnDestroy {\n  private _forceUsingLegacyES5 = false;\n  public get forceUsingLegacyES5() {\n    return this._forceUsingLegacyES5;\n  }\n  public set forceUsingLegacyES5(value) {\n    console.log('Please use the attribute `[forceUsingLegacyES5]` instead of setting the property in the service.');\n    this._forceUsingLegacyES5 = value;\n  }\n\n  // this event is fired when the pdf.js library has been loaded and objects like PDFApplication are available\n  public onPDFJSInitSignal = signal<IPDFViewerApplication | undefined>(undefined);\n\n  public pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n\n  public shuttingDown = false;\n\n  private _needsES5: boolean | undefined = undefined;\n\n  public PDFViewerApplication!: IPDFViewerApplication;\n  public PDFViewerApplicationOptions!: IPDFViewerApplicationOptions;\n  // private PDFViewerApplicationConstants: any;\n  public webViewerLoad: (cspPolicyService: PdfCspPolicyService) => void;\n\n  public ngxExtendedPdfViewerIncompletelyInitialized = true;\n\n  public constructor(\n    private pdfCspPolicyService: PdfCspPolicyService,\n    @Inject(CSP_NONCE) private csp_nonce: string,\n  ) {\n    effect(() => {\n      if (this.onPDFJSInitSignal()) {\n        this.pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n      }\n    });\n  }\n\n  private addScriptOpChainingSupport(useInlineScripts: boolean): Promise<boolean> {\n    if (!useInlineScripts || this.isCSPApplied()) {\n      return new Promise((resolve) => {\n        const script = this.createScriptElement(pdfDefaultOptions.assetsFolder + '/op-chaining-support.js');\n        script.onload = () => {\n          script.remove();\n          script.onload = null;\n          resolve((<any>globalThis).ngxExtendedPdfViewerCanRunModernJSCode as boolean);\n        };\n        script.onerror = () => {\n          script.remove();\n          (<any>globalThis).ngxExtendedPdfViewerCanRunModernJSCode = false;\n          resolve(false);\n          script.onerror = null;\n        };\n\n        document.body.appendChild(script);\n      });\n    } else {\n      const code = `\nnew (function () {\n  class BrowserCompatibilityTester {\n    // Does your browser doesn't support private fields?\n    #privateField;\n\n    constructor() {\n      // Does your browser support the logical assignment operators?\n      let x = false;\n      x ||= true;\n\n      this.#privateMethod();\n    }\n\n    // Does your browser doesn't support private methods?\n    #privateMethod() {\n      // check the the browser supports string.at()\n      return 'hello'.at(4);\n    }\n\n    supportsOptionalChaining() {\n      const optionalChaining = {\n        support: true,\n      };\n      return optionalChaining?.support;\n    }\n  }\n\n  function supportsPromiseWithResolvers() {\n    const iframe = document.createElement('iframe');\n    document.firstElementChild.append(iframe);\n    const useLegacyPdfViewer = 'withResolvers' in iframe.contentWindow['Promise'];\n    iframe.parentElement.removeChild(iframe);\n\n    return useLegacyPdfViewer;\n  }\n\n  const supportsOptionalChaining = new BrowserCompatibilityTester().supportsOptionalChaining();\n  const supportModernPromises = supportsPromiseWithResolvers();\n  window.ngxExtendedPdfViewerCanRunModernJSCode = supportsOptionalChaining && supportModernPromises;\n})();\n`;\n      const script = this.createInlineScript(code);\n      document.getElementsByTagName('head')[0].appendChild(script);\n      return new Promise((resolve) => {\n        const interval = setInterval(() => {\n          if ((globalThis as any).ngxExtendedPdfViewerCanRunModernJSCode !== undefined) {\n            clearInterval(interval);\n            resolve((globalThis as any).ngxExtendedPdfViewerCanRunModernJSCode);\n          }\n        }, 1);\n      });\n    }\n  }\n\n  private createInlineScript(code: string): HTMLScriptElement {\n    const script = document.createElement('script');\n    script.async = true;\n    script.type = 'module';\n    script.className = `ngx-extended-pdf-viewer-script`;\n    script.text = code;\n    if (this.csp_nonce) {\n      // assigning null to script.nonce results in a string \"null\", so let's add a null check\n      script.nonce = this.csp_nonce;\n    }\n    return script;\n  }\n\n  private isCSPAppliedViaMetaTag(): boolean {\n    const metaTags = document.getElementsByTagName('meta');\n    for (let i = 0; i < metaTags.length; i++) {\n      if (metaTags[i].getAttribute('http-equiv') === 'Content-Security-Policy') {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  private isCSPApplied() {\n    if (this.isCSPAppliedViaMetaTag()) {\n      return true;\n    }\n    return false;\n  }\n\n  private createScriptElement(sourcePath: string): HTMLScriptElement {\n    const script = document.createElement('script');\n    script.async = true;\n    script.type = sourcePath.includes('.mjs') ? 'module' : 'text/javascript';\n    script.className = `ngx-extended-pdf-viewer-script`;\n    this.pdfCspPolicyService.addTrustedJavaScript(script, sourcePath);\n    return script;\n  }\n\n  private getPdfJsPath(artifact: 'pdf' | 'viewer') {\n    let suffix = pdfDefaultOptions._internalFilenameSuffix;\n    if (this._needsES5) {\n      suffix = ''; // we don't publish minified ES5 files\n    }\n    suffix += '.mjs';\n    const assets = pdfDefaultOptions.assetsFolder;\n    const versionSuffix = getVersionSuffix(assets);\n    const artifactPath = `/${artifact}-`;\n    const es5 = this._needsES5 ? '-es5' : '';\n\n    return assets + artifactPath + versionSuffix + es5 + suffix;\n  }\n\n  private async loadViewer(forceReload: boolean): Promise<void> {\n    return new Promise((resolve) => {\n      let viewerPath = this.getPdfJsPath('viewer');\n      if (forceReload) {\n        viewerPath += '?v=' + new Date().getTime();\n      }\n      const listener = (event: CustomEvent) => {\n        const { PDFViewerApplication, PDFViewerApplicationOptions, webViewerLoad } = event.detail;\n        this.PDFViewerApplication = PDFViewerApplication;\n        this.PDFViewerApplicationOptions = PDFViewerApplicationOptions;\n        this.webViewerLoad = webViewerLoad;\n        resolve();\n        document.removeEventListener('ngxViewerFileHasBeenLoaded', listener);\n      };\n      document.addEventListener('ngxViewerFileHasBeenLoaded', listener, { once: true });\n      const script = this.createScriptElement(viewerPath);\n      document.getElementsByTagName('head')[0].appendChild(script);\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  public async ensurePdfJsHasBeenLoaded(useInlineScripts: boolean, forceUsingLegacyES5: boolean, forceReload: boolean): Promise<boolean> {\n    if (this.PDFViewerApplication) {\n      return true;\n    }\n    this._needsES5 = forceUsingLegacyES5 || (await this.needsES5(useInlineScripts));\n    if (forceUsingLegacyES5) {\n      pdfDefaultOptions.needsES5 = true;\n    }\n    await this.loadViewer(forceReload);\n    return this.PDFViewerApplication !== undefined;\n  }\n\n  public ngOnDestroy() {\n    this.shuttingDown = true;\n    if (typeof window === 'undefined') {\n      return; // fast escape for server side rendering\n    }\n    delete globalThis['setNgxExtendedPdfViewerSource'];\n\n    const w = window as any;\n    delete w.pdfjsLib;\n    document.querySelectorAll('.ngx-extended-pdf-viewer-script').forEach((e: HTMLScriptElement) => {\n      e.onload = null;\n      e.remove();\n    });\n  }\n\n  private iOSVersionRequiresES5(): boolean {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return false;\n    }\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(useInlineScripts: boolean): Promise<boolean> {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return false;\n    }\n    if (this._needsES5 === undefined) {\n      const isIE = !!(<any>globalThis).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        this._needsES5 = true;\n        return true;\n      }\n      this._needsES5 = !(await this.ngxExtendedPdfViewerCanRunModernJSCode(useInlineScripts));\n      this.polyfillPromiseWithResolversIfZoneJSOverwritesIt();\n    }\n    return this._needsES5;\n  }\n\n  /**\n   * Angular 16 uses zone.js 0.13.3, and this version has a problem with Promise.withResolvers.\n   * If your browser supports Promise.withResolvers, zone.js accidentally overwrites it with \"undefined\".\n   * This method adds a polyfill for Promise.withResolvers if it is not available.\n   */\n  private polyfillPromiseWithResolversIfZoneJSOverwritesIt() {\n    const TypelessPromise = Promise as any;\n    if (!TypelessPromise.withResolvers) {\n      TypelessPromise.withResolvers = function withResolvers() {\n        let a: unknown;\n        let b: unknown;\n        const c = new this(function (resolve: unknown, reject: unknown) {\n          a = resolve;\n          b = reject;\n        });\n        return { resolve: a, reject: b, promise: c };\n      };\n    }\n  }\n\n  private ngxExtendedPdfViewerCanRunModernJSCode(useInlineScripts: boolean): Promise<boolean> {\n    return new Promise((resolve) => {\n      const support = (<any>globalThis).ngxExtendedPdfViewerCanRunModernJSCode;\n      support !== undefined ? resolve(support) : resolve(this.addScriptOpChainingSupport(useInlineScripts));\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { IPDFViewerApplication } from '../public_api';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxKeyboardManagerService {\n  /** Allows the user to disable the keyboard bindings completely */\n  public ignoreKeyboard = false;\n\n  /** Allows the user to disable a list of key bindings. */\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  public acceptKeys: Array<string> = [];\n\n  constructor() {}\n\n  public isKeyIgnored(cmd: number, keycode: number | 'WHEEL'): boolean {\n    if (keycode === 'WHEEL') {\n      if (!!this.ignoreKeys && this.isKeyInList(this.ignoreKeys, cmd, 'WHEEL')) {\n        return true;\n      }\n      if (!!this.acceptKeys && this.acceptKeys.length > 0) {\n        return !this.isKeyInList(this.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    if (!!this.ignoreKeyboard) {\n      return true;\n    }\n\n    if (!!this.ignoreKeys && this.ignoreKeys.length > 0) {\n      if (this.isKeyInList(this.ignoreKeys, cmd, keycode)) {\n        return true;\n      }\n    }\n\n    if (!!this.acceptKeys && this.acceptKeys.length > 0) {\n      return !this.isKeyInList(this.acceptKeys, cmd, keycode);\n    }\n    return false;\n  }\n\n  private isKeyInList(settings: Array<string>, cmd: number, keycode: number | 'WHEEL'): boolean {\n    if (!settings) {\n      return true;\n    }\n    return settings.some((keyDef) => this.isKey(keyDef, cmd, keycode));\n  }\n\n  private 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\n  public registerKeyboardListener(PDFViewerApplication: IPDFViewerApplication) {\n    PDFViewerApplication.ngxKeyboardManager = this;\n  }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { IPDFViewerApplication } from '../options/pdf-viewer-application';\nimport { pdfDefaultOptions } from '../options/pdf-default-options';\n\n/**\n * Pure Angular service for iOS Safari pinch-to-zoom optimization\n * Works by dynamically adjusting the maxCanvasPixels option during touch gestures\n * This approach is compatible with the existing mypdf.js MaxCanvasSize class\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class IOSCanvasOptimizationService {\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n  private isInitialized = false;\n  private isPinching = false;\n  private cooldownTimer: any = null;\n  private originalMaxCanvasPixels: number;\n  private reducedMaxCanvasPixels: number;\n\n  // Configuration\n  private readonly cooldownDuration = 2000; // 2 seconds\n  private readonly reductionFactor = 0.25; // Reduce to 25% during pinch\n  private readonly iosMaxCanvasPixels = 5242880; // PDF.js iOS limit (5MP)\n\n  constructor(private ngZone: NgZone) {\n    // Store original canvas size\n    this.originalMaxCanvasPixels = pdfDefaultOptions.maxCanvasPixels || this.getDefaultCanvasSize();\n    this.reducedMaxCanvasPixels = Math.min(\n      this.originalMaxCanvasPixels * this.reductionFactor,\n      this.iosMaxCanvasPixels\n    );\n  }\n\n  /**\n   * Initialize the service with PDFViewerApplication\n   * Called from NgxExtendedPdfViewerComponent.initialize()\n   */\n  initialize(pdfViewerApplication: IPDFViewerApplication): void {\n    if (this.isInitialized || typeof window === 'undefined') return;\n\n    this.PDFViewerApplication = pdfViewerApplication;\n    this.ngZone.runOutsideAngular(() => {\n      this.setupTouchListeners();\n      this.isInitialized = true;\n    });\n  }\n\n  private getDefaultCanvasSize(): number {\n    const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n    const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n    \n    if (isIOS || isMobile) {\n      return this.iosMaxCanvasPixels; // Use PDF.js iOS limit\n    }\n    \n    return 33554432; // PDF.js desktop default (32MP)\n  }\n\n  private setupTouchListeners(): void {\n    // Listen for pinch-to-zoom gestures\n    window.addEventListener('touchstart', (e) => {\n      if (e.touches.length === 2) {\n        this.onPinchStart();\n      }\n    }, { passive: true });\n\n    window.addEventListener('touchend', (e) => {\n      if (e.touches.length < 2 && this.isPinching) {\n        this.onPinchEnd();\n      }\n    }, { passive: true });\n\n    window.addEventListener('touchcancel', () => {\n      if (this.isPinching) {\n        this.onPinchEnd();\n      }\n    }, { passive: true });\n  }\n\n  private onPinchStart(): void {\n    if (this.isPinching) return;\n\n    this.isPinching = true;\n    this.clearCooldown();\n    \n    // Reduce canvas resolution immediately for smooth pinching\n    this.updateCanvasSize(this.reducedMaxCanvasPixels);\n  }\n\n  private onPinchEnd(): void {\n    if (!this.isPinching) return;\n\n    this.isPinching = false;\n    this.startCooldown();\n  }\n\n  private startCooldown(): void {\n    this.clearCooldown();\n    this.cooldownTimer = setTimeout(() => {\n      // Restore full resolution after cooldown\n      this.updateCanvasSize(this.originalMaxCanvasPixels);\n    }, this.cooldownDuration);\n  }\n\n  private clearCooldown(): void {\n    if (this.cooldownTimer) {\n      clearTimeout(this.cooldownTimer);\n      this.cooldownTimer = null;\n    }\n  }\n\n  private updateCanvasSize(maxCanvasPixels: number): void {\n    // Update the pdfDefaultOptions to affect new renders\n    pdfDefaultOptions.maxCanvasPixels = maxCanvasPixels;\n\n    // Update existing PDF.js instances if available\n    if (this.PDFViewerApplication) {\n      // Update main viewer\n      if (this.PDFViewerApplication.pdfViewer) {\n        this.PDFViewerApplication.pdfViewer.maxCanvasPixels = maxCanvasPixels;\n      }\n\n      // Update thumbnail viewer\n      if (this.PDFViewerApplication.pdfThumbnailViewer) {\n        this.PDFViewerApplication.pdfThumbnailViewer.maxCanvasPixels = maxCanvasPixels;\n      }\n\n      // Trigger a gentle re-render of visible pages only during transitions\n      // (not during active pinching to avoid performance issues)\n      if (!this.isPinching) {\n        setTimeout(() => this.triggerVisiblePageRerender(), 100);\n      }\n    }\n  }\n\n  private triggerVisiblePageRerender(): void {\n    if (!this.PDFViewerApplication?.pdfViewer) return;\n\n    const pdfViewer = this.PDFViewerApplication.pdfViewer;\n    \n    // Only re-render currently visible pages to minimize performance impact\n    pdfViewer._pages?.forEach((pageView: any) => {\n      if (pageView && this.isPageVisible(pageView)) {\n        // Gently trigger re-render by invalidating the current render\n        if (pageView.renderingState === 3 /* FINISHED */) {\n          pageView.reset();\n          // Let the normal rendering queue handle the re-render\n          if (pdfViewer.renderingQueue) {\n            pdfViewer.renderingQueue.renderView(pageView);\n          }\n        }\n      }\n    });\n  }\n\n  private isPageVisible(pageView: any): boolean {\n    if (!pageView?.div) return false;\n    \n    const rect = pageView.div.getBoundingClientRect();\n    const viewHeight = window.innerHeight || document.documentElement.clientHeight;\n    const viewWidth = window.innerWidth || document.documentElement.clientWidth;\n    \n    return (\n      rect.bottom >= 0 &&\n      rect.right >= 0 &&\n      rect.top <= viewHeight &&\n      rect.left <= viewWidth\n    );\n  }\n\n  /**\n   * Get current canvas size setting\n   */\n  getCurrentCanvasSize(): number {\n    return pdfDefaultOptions.maxCanvasPixels || this.originalMaxCanvasPixels;\n  }\n\n  /**\n   * Check if currently in pinch mode\n   */\n  isPinchingActive(): boolean {\n    return this.isPinching;\n  }\n\n  /**\n   * Manually override the canvas size (for advanced users)\n   */\n  setCanvasSize(maxCanvasPixels: number): void {\n    this.originalMaxCanvasPixels = maxCanvasPixels;\n    this.reducedMaxCanvasPixels = Math.min(\n      maxCanvasPixels * this.reductionFactor,\n      this.iosMaxCanvasPixels\n    );\n    \n    if (!this.isPinching) {\n      this.updateCanvasSize(maxCanvasPixels);\n    }\n  }\n\n  /**\n   * Cleanup when service is destroyed\n   */\n  destroy(): void {\n    this.clearCooldown();\n    this.isInitialized = false;\n    // Touch listeners will be cleaned up when window is destroyed\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\nexport type ResponsiveVisibility = boolean | 'always-visible' | 'always-in-secondary-menu' | 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\nexport class PdfBreakpoints {\n  static xs = 490;\n\n  static sm = 560;\n\n  static md = 610;\n\n  static lg = 660;\n\n  static xl = 790;\n\n  static xxl = 910;\n}\n\nexport type ResponsiveCSSClass =\n  | 'hiddenXXSView'\n  | 'hiddenTinyView'\n  | 'hiddenSmallView'\n  | 'hiddenMediumView'\n  | 'hiddenLargeView'\n  | 'hiddenXLView'\n  | 'hiddenXXLView'\n  | 'invisible'\n  | 'always-visible'\n  | 'always-in-secondary-menu';\n\nexport type ResponsiveCSSClassInSecondaryToolbar =\n  | 'visibleXXSView'\n  | 'visibleTinyView'\n  | 'visibleSmallView'\n  | 'visibleMediumView'\n  | 'visibleLargeView'\n  | 'visibleXLView'\n  | 'visibleXXLView'\n  | 'invisible'\n  | 'always-visible'\n  | 'always-in-secondary-menu';\n\n@Pipe({ name: 'responsiveCSSClass' })\nexport class ResponsiveCSSClassPipe implements PipeTransform {\n  transform(visible: ResponsiveVisibility | undefined, defaultClass: ResponsiveCSSClass = 'always-visible'): ResponsiveCSSClass {\n    switch (visible) {\n      case undefined:\n        return defaultClass;\n      case false:\n        return 'invisible';\n      case true:\n        return defaultClass;\n      case 'always-visible':\n        return 'always-visible';\n      case 'always-in-secondary-menu':\n        return 'always-in-secondary-menu';\n      case 'xxs':\n        return 'hiddenXXSView';\n      case 'xs':\n        return 'hiddenTinyView';\n      case 'sm':\n        return 'hiddenSmallView';\n      case 'md':\n        return 'hiddenMediumView';\n      case 'lg':\n        return 'hiddenLargeView';\n      case 'xl':\n        return 'hiddenXLView';\n      case 'xxl':\n        return 'hiddenXXLView';\n    }\n  }\n}\n\n@Pipe({ name: 'invertForSecondaryToolbar' })\nexport class NegativeResponsiveCSSClassPipe implements PipeTransform {\n  transform(visible: ResponsiveCSSClass | ResponsiveVisibility): ResponsiveCSSClassInSecondaryToolbar {\n    switch (visible) {\n      case undefined:\n        return 'always-visible';\n      case 'always-visible':\n      case true:\n        return 'invisible';\n      case 'invisible':\n      case false:\n        return 'invisible';\n      case 'always-in-secondary-menu':\n        return 'always-in-secondary-menu';\n      case 'hiddenXXSView':\n      case 'xxs':\n        return 'visibleXXSView';\n      case 'hiddenTinyView':\n      case 'xs':\n        return 'visibleTinyView';\n      case 'sm':\n      case 'hiddenSmallView':\n        return 'visibleSmallView';\n      case 'md':\n      case 'hiddenMediumView':\n        return 'visibleMediumView';\n      case 'lg':\n      case 'hiddenLargeView':\n        return 'visibleLargeView';\n      case 'xl':\n      case 'hiddenXLView':\n        return 'visibleXLView';\n      case 'xxl':\n      case 'hiddenXXLView':\n        return 'visibleXXLView';\n    }\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] === undefined) {\n      if (!this.con || !this.el) {\n        this.initElements();\n      }\n      if (!this.con || !this.el) {\n        // dummy implementation for server-side rendering\n        this.pxPerUnitCache[unit] = 1;\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    if (length == null || length === '') {\n      throw new TypeError('Error parsing length');\n    }\n    \n    const unitRe = /^\\s*([+-]?[\\d\\.]*)\\s*(.*?)\\s*$/i; // NOSONAR - trim trailing whitespace too\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].trim(); // Explicitly trim the unit\n      const valid = !isNaN(val) && unit && (bare || match[1] !== 'NaN');\n      \n      // Validate that we have a proper unit (known CSS units)\n      const knownUnits = ['px', 'em', 'rem', 'pt', 'pc', 'in', 'cm', 'mm', '%', 'vh', 'vw', 'ex', 'ch'];\n      const hasValidUnit = knownUnits.includes(unit);\n      \n      // Only allow bare units (like \"px\" without number) for known units\n      if (valid && hasValidUnit) {\n        return unit === 'px' ? val : this.pxPerUnit(unit) * val;\n      }\n    }\n    throw new TypeError('Error parsing length');\n  }\n}\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { CSP_NONCE, Component, Inject, Input, OnDestroy, Optional, PLATFORM_ID, Renderer2 } from '@angular/core';\nimport { NgxHasHeight } from '../ngx-has-height';\nimport { VerbosityLevel } from '../options/verbosity-level';\nimport { PdfCspPolicyService } from '../pdf-csp-policy.service';\nimport { PdfBreakpoints } from '../responsive-visibility';\nimport { UnitToPx } from '../unit-to-px';\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 OnDestroy {\n  @Input()\n  public zoom = 1.0;\n\n  @Input()\n  public width = 3.14159265359;\n\n  public xxs = 455;\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#toolbarContainer .always-in-secondary-menu {\n  display: none;\n}\n\n#secondaryToolbar .always-in-secondary-menu {\n  display: inline-flex;\n}\n\n#outerContainer #mainContainer .visibleXXSView,\n#outerContainer #mainContainer .visibleTinyView,\n#outerContainer #mainContainer .visibleSmallView,\n#outerContainer #mainContainer .visibleMediumView,\n#outerContainer #mainContainer .visibleLargeView,\n#outerContainer #mainContainer .visibleXLView,\n#outerContainer #mainContainer .visibleXXLView {\n  display: none;\n}\n\n.pdf-margin-top-3px {\n  margin-top: 3px;\n}\n\n.pdf-margin-top--2px {\n  margin-top: -2px;\n}\n\n@media all and (max-width: ${this.xxl}) {\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}\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  #mainContainer .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  #mainContainer .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  #mainContainer .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#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\n@media all and (max-width: ${this.xxl}px) {\n  #outerContainer .hiddenXXLView {\n    display: none;\n  }\n  #outerContainer  #mainContainer .visibleXXLView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.xs}px) {\n  #outerContainer .hiddenTinyView,\n  #outerContainer .hiddenTinyView * {\n    display: none;\n  }\n  #outerContainer  #mainContainer .visibleTinyView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.xxs}px) {\n  #outerContainer .hiddenXXSView,\n  #outerContainer .hiddenXXSView * {\n    display: none;\n  }\n  #outerContainer #mainContainer .visibleXXSView {\n    display: inherit;\n  }\n}\n  `;\n  }\n\n  constructor(\n    private readonly renderer: Renderer2,\n    @Inject(DOCUMENT) private readonly document: Document,\n    @Inject(PLATFORM_ID) private readonly platformId,\n    private readonly pdfCspPolicyService: PdfCspPolicyService,\n    @Inject(CSP_NONCE) @Optional() private readonly nonce?: string | null\n  ) {\n    if (isPlatformBrowser(this.platformId)) {\n      this.width = document.body.clientWidth;\n    }\n  }\n\n  public updateToolbarWidth() {\n    const container = document.getElementById('toolbarViewer') ?? document.getElementById('outerContainer');\n    if (!container) {\n      return;\n    }\n    const toolbarWidthInPixels = container.clientWidth;\n\n    const fullWith = this.document.body.clientWidth;\n    const partialViewScale = fullWith / toolbarWidthInPixels;\n    const scaleFactor = partialViewScale * (this.zoom ? this.zoom : 1);\n\n    this.xs = scaleFactor * PdfBreakpoints.xs;\n    this.sm = scaleFactor * PdfBreakpoints.sm;\n    this.md = scaleFactor * PdfBreakpoints.md;\n    this.lg = scaleFactor * PdfBreakpoints.lg;\n    this.xl = scaleFactor * PdfBreakpoints.xl;\n    this.xxl = scaleFactor * PdfBreakpoints.xxl;\n\n    let styles = this.document.getElementById('pdf-dynamic-css') as HTMLStyleElement;\n    if (!styles) {\n      styles = this.document.createElement('STYLE') as HTMLStyleElement;\n      styles.id = 'pdf-dynamic-css';\n      this.pdfCspPolicyService.addTrustedCSS(styles, this.style);\n\n      if (this.nonce) {\n        styles.nonce = this.nonce;\n      }\n\n      this.renderer.appendChild(this.document.head, styles);\n    } else {\n      this.pdfCspPolicyService.addTrustedCSS(styles, this.style);\n    }\n  }\n\n  public removeScrollbarInInfiniteScrollMode(\n    restoreHeight: boolean,\n    pageViewMode: string,\n    primaryMenuVisible: boolean,\n    ngxExtendedPdfViewer: NgxHasHeight,\n    logLevel: VerbosityLevel\n  ): void {\n    if (pageViewMode === 'infinite-scroll' || restoreHeight) {\n      const viewer = document.getElementById('viewer');\n      const zoom = document.getElementsByClassName('zoom')[0];\n      if (viewer) {\n        setTimeout(() => {\n          if (pageViewMode === 'infinite-scroll') {\n            const height = viewer.clientHeight + 17;\n            if (primaryMenuVisible) {\n              ngxExtendedPdfViewer.height = height + 35 + 'px';\n            } else if (height > 17) {\n              ngxExtendedPdfViewer.height = height + 'px';\n            } else if (ngxExtendedPdfViewer.height === undefined) {\n              ngxExtendedPdfViewer.height = '100%';\n            }\n            if (zoom) {\n              (<HTMLElement>zoom).style.height = ngxExtendedPdfViewer.height;\n            }\n          } else if (restoreHeight) {\n            ngxExtendedPdfViewer.height = undefined;\n            ngxExtendedPdfViewer.autoHeight = true;\n            this.checkHeight(ngxExtendedPdfViewer, logLevel);\n          }\n        });\n      }\n    }\n  }\n\n  public checkHeight(ngxExtendedPdfViewer: NgxHasHeight, logLevel: VerbosityLevel): void {\n    if (this.isHeightDefinedWithUnits(ngxExtendedPdfViewer.height)) return;\n    if (this.isPrinting()) return;\n\n    const container = this.getContainer();\n    if (!container) return;\n\n    if (this.isContainerHeightZero(container, ngxExtendedPdfViewer, logLevel)) {\n      ngxExtendedPdfViewer.autoHeight = true;\n    }\n\n    if (ngxExtendedPdfViewer.autoHeight) {\n      this.adjustHeight(container, ngxExtendedPdfViewer);\n    }\n  }\n\n  /**\n   * The height is defined with one of the units vh, vw, em, rem, etc.\n   * So the height check isn't necessary.\n   * @param height the height of the container\n   */\n  private isHeightDefinedWithUnits(height: string | undefined): boolean {\n    return height ? isNaN(Number(height.replace('%', ''))) : false;\n  }\n\n  /**\n   * #1702 workaround to a Firefox bug: when printing, container.clientHeight is temporarily 0,\n   * causing ngx-extended-pdf-viewer to default to 100 pixels height. So it's better to do nothing.\n   * @returns true if data-pdfjsprinting is set\n   */\n  private isPrinting(): boolean {\n    if (!this.isBrowser()) {\n      return false;\n    }\n    return !!document.querySelector('[data-pdfjsprinting]');\n  }\n\n  /**\n   * Checks if the code is running in a browser environment.\n   */\n  private isBrowser(): boolean {\n    return typeof window !== 'undefined' && typeof document !== 'undefined';\n  }\n\n  private getContainer(): HTMLElement | null {\n    return typeof document !== 'undefined' ? (document.getElementsByClassName('zoom')[0] as HTMLElement) : null;\n  }\n\n  private isContainerHeightZero(container: HTMLElement, ngxExtendedPdfViewer: NgxHasHeight, logLevel: VerbosityLevel): boolean {\n    if (container.clientHeight === 0) {\n      if (logLevel >= VerbosityLevel.WARNINGS && !ngxExtendedPdfViewer.autoHeight && ngxExtendedPdfViewer.height !== '100%') {\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      }\n      return true;\n    }\n    return false;\n  }\n\n  private adjustHeight(container: HTMLElement, ngxExtendedPdfViewer: NgxHasHeight): void {\n    const available = window.innerHeight;\n    const rect = container.getBoundingClientRect();\n    const top = rect.top;\n    let maximumHeight = available - top;\n    const padding = this.calculateBorderMargin(container);\n    maximumHeight -= padding;\n    ngxExtendedPdfViewer.minHeight = maximumHeight > 100 ? `${maximumHeight}px` : '100px';\n    ngxExtendedPdfViewer.markForCheck();\n  }\n\n  private calculateBorderMargin(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.calculateBorderMargin(container.parentElement);\n    }\n    return 0;\n  }\n\n  public ngOnDestroy() {\n    const styles = this.document.getElementById('pdf-dynamic-css') as HTMLElement;\n    if (styles?.parentElement) {\n      (styles.parentElement as any).removeChild(styles);\n    }\n  }\n}\n","","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-acroform-default-theme',\n  template: '',\n  styleUrls: ['./pdf-acroform-default-colors.css'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfAcroformDefaultThemeComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-add-signature-dialog',\n  templateUrl: './pdf-add-signature-dialog.component.html',\n  styleUrl: './pdf-add-signature-dialog.component.css',\n})\nexport class AddSignatureDialogComponent {}\n","<dialog class=\"dialog signatureDialog\" id=\"addSignatureDialog\" aria-labelledby=\"addSignatureDialogLabel\">\n  <span id=\"addSignatureDialogLabel\" data-l10n-id=\"pdfjs-editor-add-signature-dialog-label\"></span>\n  <div id=\"addSignatureContainer\" class=\"mainContainer\">\n    <div class=\"title\">\n      <span role=\"sectionhead\" data-l10n-id=\"pdfjs-editor-add-signature-dialog-title\" tabindex=\"0\"></span>\n    </div>\n    <div role=\"tablist\" id=\"addSignatureOptions\">\n      <button id=\"addSignatureTypeButton\" type=\"button\" role=\"tab\" aria-selected=\"true\"\n        aria-controls=\"addSignatureTypeContainer\" data-l10n-id=\"pdfjs-editor-add-signature-type-button\"\n        tabindex=\"0\"></button>\n      <button id=\"addSignatureDrawButton\" type=\"button\" role=\"tab\" aria-selected=\"false\"\n        aria-controls=\"addSignatureDrawContainer\" data-l10n-id=\"pdfjs-editor-add-signature-draw-button\"\n        tabindex=\"0\"></button>\n      <button id=\"addSignatureImageButton\" type=\"button\" role=\"tab\" aria-selected=\"false\"\n        aria-controls=\"addSignatureImageContainer\" data-l10n-id=\"pdfjs-editor-add-signature-image-button\"\n        tabindex=\"-1\"></button>\n    </div>\n    <div id=\"addSignatureActionContainer\" data-selected=\"type\">\n      <div id=\"addSignatureTypeContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureTypeContainer\">\n        <input id=\"addSignatureTypeInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-type-input\" tabindex=\"0\">\n      </div>\n      <div id=\"addSignatureDrawContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureDrawButton\" tabindex=\"-1\">\n        <svg id=\"addSignatureDraw\" xmlns=\"http://www.w3.org/2000/svg\"\n          aria-labelledby=\"addSignatureDrawPlaceholder\"></svg>\n        <span id=\"addSignatureDrawPlaceholder\" data-l10n-id=\"pdfjs-editor-add-signature-draw-placeholder\"></span>\n        <div id=\"thickness\">\n          <div>\n            <label for=\"addSignatureDrawThickness\"\n              data-l10n-id=\"pdfjs-editor-add-signature-draw-thickness-range-label\"></label>\n            <input type=\"range\" id=\"addSignatureDrawThickness\" min=\"1\" max=\"5\" step=\"1\" value=\"1\"\n              data-l10n-id=\"pdfjs-editor-add-signature-draw-thickness-range\" data-l10n-args='{ \"thickness\": 1 }'\n              tabindex=\"0\">\n          </div>\n        </div>\n      </div>\n      <div id=\"addSignatureImageContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureImageButton\" tabindex=\"-1\">\n        <svg id=\"addSignatureImage\" xmlns=\"http://www.w3.org/2000/svg\"\n          aria-labelledby=\"addSignatureImagePlaceholder\"></svg>\n        <div id=\"addSignatureImagePlaceholder\">\n          <span data-l10n-id=\"pdfjs-editor-add-signature-image-placeholder\"></span>\n          <label id=\"addSignatureImageBrowse\" for=\"addSignatureFilePicker\" tabindex=\"0\">\n            <a data-l10n-id=\"pdfjs-editor-add-signature-image-browse-link\"></a>\n          </label>\n          <input id=\"addSignatureFilePicker\" type=\"file\">\n        </div>\n      </div>\n      <div id=\"addSignatureControls\">\n        <div id=\"horizontalContainer\">\n          <div id=\"addSignatureDescriptionContainer\">\n            <label for=\"addSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n            <span id=\"addSignatureDescription\" class=\"inputWithClearButton\">\n              <input id=\"addSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\"\n                tabindex=\"0\">\n              <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n            </span>\n          </div>\n          <button id=\"clearSignatureButton\" type=\"button\" data-l10n-id=\"pdfjs-editor-add-signature-clear-button\"\n            tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-clear-button-label\"></span></button>\n        </div>\n        <div id=\"addSignatureSaveContainer\">\n          <input type=\"checkbox\" id=\"addSignatureSaveCheckbox\" checked=\"true\">\n          <label for=\"addSignatureSaveCheckbox\" data-l10n-id=\"pdfjs-editor-add-signature-save-checkbox\"></label>\n          <span></span>\n          <span id=\"addSignatureSaveWarning\" data-l10n-id=\"pdfjs-editor-add-signature-save-warning-message\"></span>\n        </div>\n      </div>\n      <div id=\"addSignatureError\" hidden=\"true\" class=\"messageBar\">\n        <div>\n          <div>\n            <span class=\"title\" data-l10n-id=\"pdfjs-editor-add-signature-image-upload-error-title\"></span>\n            <span class=\"description\" data-l10n-id=\"pdfjs-editor-add-signature-image-upload-error-description\"></span>\n          </div>\n          <button id=\"addSignatureErrorCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\"><span\n              data-l10n-id=\"pdfjs-editor-add-signature-error-close-button\"></span></button>\n        </div>\n      </div>\n      <div class=\"dialogButtonsGroup\">\n        <button id=\"addSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n            data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n        <button id=\"addSignatureAddButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span\n            data-l10n-id=\"pdfjs-editor-add-signature-add-button\"></span></button>\n      </div>\n    </div>\n  </div>\n</dialog>","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 class=\"hidden\" type=\"context\" id=\"viewerContextMenu\">\n  <div class=\"hidden\" id=\"contextFirstPage\"></div>\n  <div class=\"hidden\" id=\"contextLastPage\"></div>\n  <div class=\"hidden\" id=\"contextPageRotateCw\"></div>\n  <div class=\"hidden\" id=\"contextPageRotateCcw\"></div>\n</div>\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.css'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfDarkThemeComponent {}\n","","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-alt-text-dialog',\n  templateUrl: './pdf-alt-text-dialog.component.html',\n})\nexport class PdfAltTextDialogComponent {}\n","<dialog class=\"dialog altText\" id=\"altTextDialog\" aria-labelledby=\"dialogLabel\" aria-describedby=\"dialogDescription\">\n  <div id=\"altTextContainer\" class=\"mainContainer\">\n    <div id=\"overallDescription\">\n      <span id=\"dialogLabel\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-label\" class=\"title\">Choose an option</span>\n      <span id=\"dialogDescription\" data-l10n-id=\"pdfjs-editor-alt-text-dialog-description\">\n        Alt text (alternative text) helps when people can’t see the image or when it doesn’t load.\n      </span>\n    </div>\n    <div id=\"addDescription\">\n      <div class=\"radio\">\n        <div class=\"radioButton\">\n          <input type=\"radio\" id=\"descriptionButton\" name=\"altTextOption\" aria-describedby=\"descriptionAreaLabel\"\n            checked />\n          <label for=\"descriptionButton\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-label\">Add a\n            description</label>\n        </div>\n        <div class=\"radioLabel\">\n          <span id=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-add-description-description\">\n            Aim for 1-2 sentences that describe the subject, setting, or actions.\n          </span>\n        </div>\n      </div>\n      <div class=\"descriptionArea\">\n        <textarea id=\"descriptionTextarea\" placeholder=\"For example, “A young man sits down at a table to eat a meal”\"\n          aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-alt-text-textarea\"></textarea>\n      </div>\n    </div>\n    <div id=\"markAsDecorative\">\n      <div class=\"radio\">\n        <div class=\"radioButton\">\n          <input type=\"radio\" id=\"decorativeButton\" name=\"altTextOption\" aria-describedby=\"decorativeLabel\" />\n          <label for=\"decorativeButton\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-label\">Mark as\n            decorative</label>\n        </div>\n        <div class=\"radioLabel\">\n          <span id=\"decorativeLabel\" data-l10n-id=\"pdfjs-editor-alt-text-mark-decorative-description\">\n            This is used for ornamental images, like borders or watermarks.\n          </span>\n        </div>\n      </div>\n    </div>\n    <div id=\"buttons\">\n      <button id=\"altTextCancel\" class=\"secondaryButton\" type=\"button\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\">Cancel</span></button>\n      <button id=\"altTextSave\" class=\"primaryButton\" type=\"button\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-alt-text-save-button\">Save</span></button>\n    </div>\n  </div>\n</dialog>\n<dialog class=\"dialog newAltText\" id=\"newAltTextDialog\" aria-labelledby=\"newAltTextTitle\"\n  aria-describedby=\"newAltTextDescription\" tabindex=\"0\">\n  <div id=\"newAltTextContainer\" class=\"mainContainer\">\n    <div class=\"title\">\n      <span id=\"newAltTextTitle\" data-l10n-id=\"pdfjs-editor-new-alt-text-dialog-edit-label\" role=\"sectionhead\"\n        tabindex=\"0\">Edit alt text (image description)</span>\n    </div>\n    <div id=\"mainContent\">\n      <div id=\"descriptionAndSettings\">\n        <div id=\"descriptionInstruction\">\n          <div id=\"newAltTextDescriptionContainer\">\n            <div class=\"altTextSpinner\" role=\"status\" aria-live=\"polite\"></div>\n            <textarea id=\"newAltTextDescriptionTextarea\" placeholder=\"Write your description here…\"\n              aria-labelledby=\"descriptionAreaLabel\" data-l10n-id=\"pdfjs-editor-new-alt-text-textarea\"\n              tabindex=\"0\"></textarea>\n          </div>\n          <span id=\"newAltTextDescription\" role=\"note\" data-l10n-id=\"pdfjs-editor-new-alt-text-description\">Short\n            description for people who can’t see the image or when the image doesn’t load.</span>\n          <div id=\"newAltTextDisclaimer\" role=\"note\">\n            <div><span data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer1\">This alt text was created automatically and\n                may be inaccurate.</span> <a href=\"https://support.mozilla.org/en-US/kb/pdf-alt-text\" target=\"_blank\"\n                rel=\"noopener noreferrer\" id=\"newAltTextLearnMore\"\n                data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer-learn-more-url\" tabindex=\"0\">Learn more</a></div>\n          </div>\n        </div>\n        <div id=\"newAltTextCreateAutomatically\" class=\"toggler\">\n          <button id=\"newAltTextCreateAutomaticallyButton\" class=\"toggle-button\" type=\"button\" aria-pressed=\"true\"\n            tabindex=\"0\"></button>\n          <label for=\"newAltTextCreateAutomaticallyButton\" class=\"togglerLabel\"\n            data-l10n-id=\"pdfjs-editor-new-alt-text-create-automatically-button-label\">Create alt text\n            automatically</label>\n        </div>\n        <div id=\"newAltTextDownloadModel\" class=\"hidden\">\n          <span id=\"newAltTextDownloadModelDescription\"\n            data-l10n-id=\"pdfjs-editor-new-alt-text-ai-model-downloading-progress\" aria-valuemin=\"0\"\n            data-l10n-args='{ \"totalSize\": 0, \"downloadedSize\": 0 }'>Downloading alt text AI model (0 of 0 MB)</span>\n        </div>\n      </div>\n      <div id=\"newAltTextImagePreview\"></div>\n    </div>\n    <div id=\"newAltTextError\" class=\"messageBar\">\n      <div>\n        <div>\n          <span class=\"title\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-title\">Couldn’t create alt text\n            automatically</span>\n          <span class=\"description\" data-l10n-id=\"pdfjs-editor-new-alt-text-error-description\">Please write your own alt\n            text or try again later.</span>\n        </div>\n        <button id=\"newAltTextCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\" title=\"Close\"><span\n            data-l10n-id=\"pdfjs-editor-new-alt-text-error-close-button\">Close</span></button>\n      </div>\n    </div>\n    <div id=\"newAltTextButtons\" class=\"dialogButtonsGroup\">\n      <button id=\"newAltTextCancel\" type=\"button\" class=\"secondaryButton hidden\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-alt-text-cancel-button\">Cancel</span></button>\n      <button id=\"newAltTextNotNow\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-new-alt-text-not-now-button\">Not now</span></button>\n      <button id=\"newAltTextSave\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-alt-text-save-button\">Save</span></button>\n    </div>\n  </div>\n</dialog>","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-alt-text-settings-dialog',\n  templateUrl: './pdf-alt-text-settings-dialog.component.html',\n  styleUrls: ['./pdf-alt-text-settings-dialog.component.css'],\n})\nexport class PdfAltTextSettingsDialogComponent {}\n","<dialog class=\"dialog\" id=\"altTextSettingsDialog\" aria-labelledby=\"altTextSettingsTitle\">\n  <div id=\"altTextSettingsContainer\" class=\"mainContainer\">\n    <div class=\"title\">\n      <span id=\"altTextSettingsTitle\" data-l10n-id=\"pdfjs-editor-alt-text-settings-dialog-label\" role=\"sectionhead\"\n        tabindex=\"0\" class=\"title\">Image alt text settings</span>\n    </div>\n    <div id=\"automaticAltText\">\n      <span data-l10n-id=\"pdfjs-editor-alt-text-settings-automatic-title\">Automatic alt text</span>\n      <div id=\"automaticSettings\">\n        <div id=\"createModelSetting\">\n          <div class=\"toggler\">\n            <button id=\"createModelButton\" type=\"button\" class=\"toggle-button\" aria-pressed=\"true\"\n              tabindex=\"0\"></button>\n            <label for=\"createModelButton\" class=\"togglerLabel\"\n              data-l10n-id=\"pdfjs-editor-alt-text-settings-create-model-button-label\">Create alt text\n              automatically</label>\n          </div>\n          <div id=\"createModelDescription\" class=\"description\">\n            <span data-l10n-id=\"pdfjs-editor-alt-text-settings-create-model-description\">Suggests descriptions to help\n              people who can’t see the image or when the image doesn’t load.</span> <a\n              href=\"https://support.mozilla.org/en-US/kb/pdf-alt-text\" target=\"_blank\" rel=\"noopener noreferrer\"\n              id=\"altTextSettingsLearnMore\" data-l10n-id=\"pdfjs-editor-new-alt-text-disclaimer-learn-more-url\"\n              tabindex=\"0\">Learn more</a>\n          </div>\n        </div>\n        <div id=\"aiModelSettings\">\n          <div>\n            <span data-l10n-id=\"pdfjs-editor-alt-text-settings-download-model-label\"\n              data-l10n-args='{ \"totalSize\": 180 }'>Alt text AI model (180MB)</span>\n            <div id=\"aiModelDescription\" class=\"description\">\n              <span data-l10n-id=\"pdfjs-editor-alt-text-settings-ai-model-description\">Runs locally on your device so\n                your data stays private. Required for automatic alt text.</span>\n            </div>\n          </div>\n          <button id=\"deleteModelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n              data-l10n-id=\"pdfjs-editor-alt-text-settings-delete-model-button\">Delete</span></button>\n          <button id=\"downloadModelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n              data-l10n-id=\"pdfjs-editor-alt-text-settings-download-model-button\">Download</span></button>\n        </div>\n      </div>\n    </div>\n    <div class=\"dialogSeparator\"></div>\n    <div id=\"altTextEditor\">\n      <span data-l10n-id=\"pdfjs-editor-alt-text-settings-editor-title\">Alt text editor</span>\n      <div id=\"showAltTextEditor\">\n        <div class=\"toggler\">\n          <button id=\"showAltTextDialogButton\" type=\"button\" class=\"toggle-button\" aria-pressed=\"true\"\n            tabindex=\"0\"></button>\n          <label for=\"showAltTextDialogButton\" class=\"togglerLabel\"\n            data-l10n-id=\"pdfjs-editor-alt-text-settings-show-dialog-button-label\">Show alt text editor right away when\n            adding an image</label>\n        </div>\n        <div id=\"showAltTextDialogDescription\" class=\"description\">\n          <span data-l10n-id=\"pdfjs-editor-alt-text-settings-show-dialog-description\">Helps you make sure all your\n            images have alt text.</span>\n        </div>\n      </div>\n    </div>\n    <div id=\"buttons\" class=\"dialogButtonsGroup\">\n      <button id=\"altTextSettingsCloseButton\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-alt-text-settings-close-button\">Close</span></button>\n    </div>\n  </div>\n</dialog>","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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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=\"pdfjs-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\" type=\"button\"><span data-l10n-id=\"pdfjs-document-properties-close-button\">Close</span></button>\n  </div>\n</dialog>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-edit-signature-dialog',\n  templateUrl: './pdf-edit-signature-dialog.component.html',\n  styleUrl: './pdf-edit-signature-dialog.component.css',\n})\nexport class EditSignatureDialogComponent {}\n","<dialog class=\"dialog signatureDialog\" id=\"editSignatureDescriptionDialog\"\n  aria-labelledby=\"editSignatureDescriptionTitle\">\n  <div id=\"editSignatureDescriptionContainer\" class=\"mainContainer\">\n    <div class=\"title\">\n      <span id=\"editSignatureDescriptionTitle\" role=\"sectionhead\"\n        data-l10n-id=\"pdfjs-editor-edit-signature-dialog-title\" tabindex=\"0\"></span>\n    </div>\n    <div id=\"editSignatureDescriptionAndView\">\n      <div id=\"editSignatureDescriptionContainer\">\n        <label for=\"editSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n        <span id=\"editSignatureDescription\" class=\"inputWithClearButton\">\n          <input id=\"editSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\"\n            tabindex=\"0\">\n          <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n        </span>\n      </div>\n      <svg id=\"editSignatureView\" xmlns=\"http://www.w3.org/2000/svg\"></svg>\n    </div>\n    <div class=\"dialogButtonsGroup\">\n      <button id=\"editSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n      <button id=\"editSignatureUpdateButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-edit-signature-update-button\"></span></button>\n    </div>\n  </div>\n</dialog>","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\">More Information</button>\n    <button type=\"button\" id=\"errorShowLess\" hidden=\"true\">Less Information</button>\n  </div>\n  <div id=\"errorMessageRight\">\n    <button type=\"button\" id=\"errorClose\">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-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-entire-word',\n  templateUrl: './pdf-find-entire-word.component.html',\n  styleUrls: ['./pdf-find-entire-word.component.css'],\n})\nexport class PdfFindEntireWordComponent {}\n","<input type=\"checkbox\" id=\"findEntireWord\" class=\"toolbarField\" />\n<label for=\"findEntireWord\" class=\"toolbarLabel\" data-l10n-id=\"pdfjs-find-entire-word-checkbox-label\"> Whole words </label>\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 type=\"checkbox\" id=\"findHighlightAll\" class=\"toolbarField\" />\n<label for=\"findHighlightAll\" class=\"toolbarLabel\" data-l10n-id=\"pdfjs-find-highlight-checkbox\"> Highlight all </label>\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\n  type=\"button\"\n  id=\"findNext\"\n  class=\"toolbarButton\"\n  title=\"Find the next occurrence of the phrase\"\n  data-l10n-id=\"pdfjs-find-next-button\"\n  aria-label=\"Find the next occurrence of the phrase\"\n>\n  <svg aria-hidden=\"true\" focusable=\"false\" 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=\"pdfjs-find-next-button-label\">Next</span>\n</button>\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\n  type=\"button\"\n  id=\"findPrevious\"\n  class=\"toolbarButton\"\n  title=\"Find the previous occurrence of the phrase\"\n  data-l10n-id=\"pdfjs-find-previous-button\"\n  aria-label=\"Find the previous occurrence of the phrase\"\n>\n  <svg aria-hidden=\"true\" focusable=\"false\" 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=\"pdfjs-find-previous-button-label\">Previous</span>\n</button>\n","import { Component } from '@angular/core';\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","<span class=\"loadingInput end\">\n  <input\n    autocomplete=\"off\"\n    id=\"findInput\"\n    class=\"toolbarField\"\n    title=\"Find\"\n    [placeholder]=\"'Find in document…'\"\n    data-l10n-id=\"pdfjs-find-input\"\n    name=\"search-input-field\"\n  />\n</span>\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","@if (!customFindbarInputArea) {\n  <div id=\"findbarInputContainer\">\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\n<ng-container [ngTemplateOutlet]=\"customFindbarInputArea || null\"> </ng-container>\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 type=\"checkbox\" id=\"findMatchCase\" class=\"toolbarField\" />\n<label for=\"findMatchCase\" class=\"toolbarLabel\" data-l10n-id=\"pdfjs-find-match-case-checkbox-label\"> Match case </label>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-multiple',\n  templateUrl: './pdf-find-multiple.component.html',\n})\nexport class PdfFindMultipleComponent {}\n","<input type=\"checkbox\" id=\"findMultiple\" class=\"toolbarField\" />\n<label for=\"findMultiple\" class=\"toolbarLabel\" data-l10n-id=\"pdfjs-find-multiple-checkbox-label\"\n  title=\"multiple queries separated by space\"> Multiple words\n</label>","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-find-regexp',\n  templateUrl: './pdf-find-regexp.component.html',\n})\nexport class PdfFindRegExpComponent {}\n","<input type=\"checkbox\" id=\"matchRegExp\" class=\"toolbarField\" />\n<label for=\"matchRegExp\" class=\"toolbarLabel\" data-l10n-id=\"pdfjs-find-regexp-checkbox-label\"\n  title=\"pass a regular expression\"> Regular Expression\n</label>","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","<div id=\"findbarMessageContainer\" aria-live=\"polite\">\n  <span id=\"findResultsCount\" class=\"toolbarLabel\"></span>\n  <span id=\"findMsg\" class=\"toolbarLabel\"></span>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-match-diacritics',\n  templateUrl: './pdf-match-diacritics.component.html',\n  styleUrls: [],\n})\nexport class PdfMatchDiacriticsComponent {}\n","<input type=\"checkbox\" id=\"findMatchDiacritics\" class=\"toolbarField\" />\n<label for=\"findMatchDiacritics\" class=\"toolbarLabel\" data-l10n-id=\"pdfjs-find-match-diacritics-checkbox-label\">Match Diacritics</label>\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = 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 showFindEntireWord = true;\n\n  @Input()\n  public showFindMatchDiacritics = true;\n\n  @Input()\n  public showFindResultsCount = true;\n\n  @Input()\n  public showFindMessages = true;\n\n  @Input()\n  public showFindMultiple: boolean = true;\n\n  @Input()\n  public showFindRegexp: boolean = true;\n}\n","<ng-container [ngTemplateOutlet]=\"customFindbar ? customFindbar : defaultFindbar\"> </ng-container>\n\n<ng-template #defaultFindbar>\n  <div class=\"findbar hidden doorHanger\" id=\"findbar\" [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n    [style.transformOrigin]=\"'left top'\" [style.left]=\"findbarLeft\" [style.top]=\"findbarTop\">\n    <ng-container [ngTemplateOutlet]=\"customFindbarButtons ? customFindbarButtons : defaultFindbarButtons\">\n    </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-match-diacritics [class.hidden]=\"!showFindMatchDiacritics\"></pdf-match-diacritics>\n  <pdf-find-entire-word [class.hidden]=\"!showFindEntireWord\"></pdf-find-entire-word>\n  <pdf-find-multiple [class.hidden]=\"!showFindMultiple\"></pdf-find-multiple>\n  <pdf-find-regexp [class.hidden]=\"!showFindRegexp\"></pdf-find-regexp>\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>","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'pdf-light-theme',\n  templateUrl: './pdf-light-theme.component.html',\n  styleUrls: ['./colors.css'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfLightThemeComponent {}\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=\"pdfjs-password-label\">Enter the password to open this PDF file:</label>\n  </div>\n  <div class=\"row\">\n    <input type=\"text\" id=\"password\" class=\"toolbarField\" />\n  </div>\n  <div class=\"buttonRow\">\n    <button id=\"passwordCancel\" class=\"dialogButton\"><span data-l10n-id=\"pdfjs-password-cancel-button\">Cancel</span></button>\n    <button id=\"passwordSubmit\" class=\"dialogButton\"><span data-l10n-id=\"pdfjs-password-ok-button\">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  styleUrls: ['./pdf-prepare-printing-dialog.component.css'],\n})\nexport class PdfPreparePrintingDialogComponent {}\n","<dialog id=\"printServiceDialog\">\n  <div class=\"row\">\n    <span data-l10n-id=\"pdfjs-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=\"pdfjs-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\" type=\"button\">\n      <span data-l10n-id=\"pdfjs-print-progress-close-button\">Cancel</span>\n    </button>\n  </div>\n</dialog>\n","import { effect, Injectable } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveCSSClass } from '../../responsive-visibility';\nimport { PdfShyButtonComponent } from './pdf-shy-button.component';\n\nexport interface PdfShyButtonDescription {\n  id: string;\n  cssClass: ResponsiveCSSClass;\n  l10nId: string;\n  l10nLabel: string;\n  title: string;\n  toggled: boolean;\n  disabled: boolean;\n  order: number;\n  image: string | SafeHtml | undefined;\n  action?: () => void;\n  eventBusName?: string;\n  closeOnClick?: boolean;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PdfShyButtonService {\n  public buttons: PdfShyButtonDescription[] = [];\n\n  private PDFViewerApplication!: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public add(button: PdfShyButtonComponent): void {\n    const id = button.secondaryMenuId ?? this.addDefaultPrefix(button);\n    const previousDefinition = this.buttons.findIndex((b) => b.id === id);\n    const description: PdfShyButtonDescription = {\n      id,\n      cssClass: button.cssClass,\n      l10nId: button.l10nId,\n      l10nLabel: button.l10nLabel,\n      title: button.title,\n      toggled: button.toggled,\n      disabled: button.disabled,\n      order: button.order ?? 99999,\n      image: button.imageHtml,\n      action: button.action,\n      eventBusName: button.eventBusName,\n      closeOnClick: button.closeOnClick,\n    };\n    if (previousDefinition >= 0) {\n      this.buttons[previousDefinition] = description;\n      setTimeout(() => {\n        if (this.PDFViewerApplication?.l10n) {\n          const element = document.getElementById(id);\n          this.PDFViewerApplication.l10n.translate(element).then(() => {\n            // Dispatch the 'localized' event on the `eventBus` once the viewer\n            // has been fully initialized and translated.\n          });\n        }\n      }, 0);\n    } else {\n      this.buttons.push(description);\n    }\n    this.buttons.sort((a, b) => a.order - b.order);\n  }\n\n  private addDefaultPrefix(button: PdfShyButtonComponent): string {\n    if (button.primaryToolbarId.startsWith('primary')) {\n      return button.primaryToolbarId.replace('primary', 'secondary');\n    }\n    return 'secondary' + button.primaryToolbarId.substring(0, 1).toUpperCase() + button.primaryToolbarId.substring(1);\n  }\n\n  public update(button: PdfShyButtonComponent): void {\n    const id = button.secondaryMenuId ?? this.addDefaultPrefix(button);\n\n    if (this.buttons.some((b) => b.id === id)) {\n      this.add(button);\n    }\n  }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  PLATFORM_ID,\n  SimpleChanges,\n  TemplateRef,\n  effect,\n} from '@angular/core';\nimport { NgxExtendedPdfViewerService } from '../../ngx-extended-pdf-viewer.service';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PdfShyButtonService } from '../../toolbar/pdf-shy-button/pdf-shy-button-service';\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 localizationInitialized: boolean;\n\n  @Output()\n  public spreadChange = new EventEmitter<'off' | 'even' | 'odd'>();\n\n  public disablePreviousPage = true;\n\n  public disableNextPage = true;\n\n  private classMutationObserver: MutationObserver | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(\n    private element: ElementRef,\n    public notificationService: PDFNotificationService,\n    @Inject(PLATFORM_ID) private platformId: Object,\n    public pdfShyButtonService: PdfShyButtonService,\n    private ngxExtendedPdfViewerService: NgxExtendedPdfViewerService\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('pagechanging', () => {\n      this.updateUIState();\n    });\n    this.PDFViewerApplication?.eventBus.on('pagerendered', () => {\n      this.updateUIState();\n    });\n  }\n\n  public updateUIState(): void {\n    setTimeout(() => {\n      const currentPage = this.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 === this.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    if (isPlatformBrowser(this.platformId)) {\n      const targetNode = this.element.nativeElement as HTMLElement;\n\n      const config = { attributes: true, childList: true, subtree: true };\n\n      this.classMutationObserver = 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              break;\n            }\n          } else if (mutation.type === 'childList') {\n            this.checkVisibility();\n            break;\n          }\n        }\n      });\n\n      this.classMutationObserver.observe(targetNode, config);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.classMutationObserver) {\n      this.classMutationObserver.disconnect();\n      this.classMutationObserver = 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.ngxExtendedPdfViewerService.secondaryMenuIsEmpty = visibleButtons === 0;\n  }\n\n  private checkVisibilityRecursively(e: HTMLElement): number {\n    if (typeof window === 'undefined') {\n      // server-side rendering\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?.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 onClick(\n    htmlevent: Event,\n    action: undefined | ((htmlevent: Event, secondaryToolbar: boolean) => void),\n    eventBusName?: string,\n    closeOnClick?: boolean\n  ): void {\n    const origin = htmlevent.target as HTMLElement;\n    origin?.classList.add('toggled');\n    if (action) {\n      action.call(this, htmlevent, true);\n      htmlevent.preventDefault();\n    } else if (eventBusName) {\n      this.PDFViewerApplication?.eventBus.dispatch(eventBusName);\n      htmlevent.preventDefault();\n    }\n    if (closeOnClick) {\n      this.PDFViewerApplication?.secondaryToolbar.close();\n    }\n  }\n}\n","<ng-container [ngTemplateOutlet]=\"customSecondaryToolbar ? customSecondaryToolbar : defaultSecondaryToolbar\">\n</ng-container>\n\n<ng-template #defaultSecondaryToolbar>\n  <div id=\"secondaryToolbar\" class=\"secondaryToolbar hidden doorHangerRight\" [style.top]=\"secondaryToolbarTop\"\n    [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\" [style.transformOrigin]=\"'right top'\">\n    <div id=\"secondaryToolbarButtonContainer\">\n      @for (button of pdfShyButtonService.buttons; track button.id) {\n      <button type=\"button\" [id]=\"button.id\" [ngClass]=\"button.cssClass | invertForSecondaryToolbar\"\n        [class.toggled]=\"button.toggled\" class=\"secondaryToolbarButton\" [title]=\"button.title\"\n        [attr.data-l10n-id]=\"button.l10nId\"\n        (click)=\"onClick($event, button.action, button.eventBusName, button.closeOnClick)\"\n        [attr.aria-label]=\"button.title\" [disabled]=\"button.disabled\">\n        @if (button.image) {\n        <span class=\"icon\" role=\"img\" aria-hidden=\"true\" [attr.aria-label]=\"button.title\"\n          [innerHTML]=\"button.image\"></span>\n        }\n        @else {\n        <span class=\"icon\" role=\"img\" aria-hidden=\"true\" [attr.aria-label]=\"button.title\"></span>\n        }\n        <span class=\"toolbar-caption\" [attr.data-l10n-id]=\"button.l10nLabel\">{{ button.title }}</span>\n      </button>\n      }\n    </div>\n  </div>\n</ng-template>","import { Component, effect, EventEmitter, Input, OnDestroy, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { PdfThumbnailDrawnEvent } from '../../../events/pdf-thumbnail-drawn-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../../pdf-notification-service';\ndeclare class PDFThumbnailView {\n  anchor: HTMLAnchorElement;\n  div: HTMLElement;\n  ring: HTMLElement;\n  canvasWidth: number;\n  canvasHeight: number;\n}\n\ninterface RenderCustomThumbnailEvent {\n  pdfThumbnailView: PDFThumbnailView;\n  linkService: PDFLinkService;\n  id: number;\n  container: HTMLDivElement;\n  thumbPageTitlePromiseOrPageL10nArgs: string;\n}\n\ndeclare class PDFLinkService {\n  public page: number;\n  public pagesCount: number;\n  public getAnchorUrl(targetUrl: string): string;\n}\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('defaultThumbnail', { read: TemplateRef })\n  public defaultThumbnail!: TemplateRef<any>;\n\n  private linkService: PDFLinkService | undefined;\n\n  @Output()\n  public thumbnailDrawn = new EventEmitter<PdfThumbnailDrawnEvent>();\n\n  private PDFViewerApplication!: IPDFViewerApplication | undefined;\n\n  private thumbnailListener: any;\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(public notificationService: PDFNotificationService) {\n    if (typeof window !== 'undefined') {\n      effect(() => {\n        this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n        if (this.PDFViewerApplication) {\n          this.thumbnailListener = this.createThumbnail.bind(this);\n          this.PDFViewerApplication.eventBus.on('rendercustomthumbnail', this.thumbnailListener);\n        }\n      });\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.linkService = undefined;\n    if (this.thumbnailListener) {\n      this.PDFViewerApplication?.eventBus.off('rendercustomthumbnail', this.thumbnailListener);\n    }\n  }\n\n  private createThumbnail({\n    pdfThumbnailView,\n    linkService,\n    id,\n    container,\n    thumbPageTitlePromiseOrPageL10nArgs,\n  }: RenderCustomThumbnailEvent): HTMLImageElement | undefined {\n    this.linkService = linkService;\n    const template = this.customThumbnail ?? this.defaultThumbnail;\n    const view = template.createEmbeddedView(null);\n    const newElement = view.rootNodes[0] as HTMLElement;\n    newElement.classList.remove('pdf-viewer-template');\n\n    const anchor = newElement as HTMLAnchorElement;\n    anchor.href = linkService.getAnchorUrl(`#page=${id}`);\n    anchor.className = `thumbnail${id}`;\n\n    anchor.setAttribute('data-l10n-id', 'pdfjs-thumb-page-title');\n    anchor.setAttribute('data-l10n-args', thumbPageTitlePromiseOrPageL10nArgs);\n\n    this.replacePageNumberEverywhere(newElement, id.toString());\n\n    anchor.onclick = () => {\n      linkService.page = id;\n      return false;\n    };\n    pdfThumbnailView.anchor = anchor;\n\n    const img: HTMLImageElement | undefined = newElement.getElementsByTagName('img')[0];\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    return img;\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  private replacePageNumberEverywhere(element: Element, pageNumber: string): void {\n    if (element.attributes) {\n      Array.from(element.attributes).forEach((attr) => {\n        if (attr.value.includes('PAGE_NUMBER')) {\n          attr.value = attr.value.replace('PAGE_NUMBER', pageNumber);\n        }\n      });\n    }\n\n    element.childNodes.forEach((child) => {\n      if (child.nodeType === Node.ELEMENT_NODE) {\n        this.replacePageNumberEverywhere(child as Element, pageNumber);\n      } else if (child.nodeType === Node.TEXT_NODE) {\n        if (child.nodeValue?.includes('PAGE_NUMBER')) {\n          child.nodeValue = child.nodeValue.replace('PAGE_NUMBER', pageNumber);\n        }\n      }\n    });\n  }\n}\n","<div id=\"sidebarContent\" [style.top]=\"top\">\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_NUMBER\">\n      <img class=\"thumbnailImage\" alt=\"miniature of the page\" />\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      aria-label=\"Thumbnails\"\n      type=\"button\"\n      id=\"viewThumbnail\"\n      class=\"toolbarButton toggled\"\n      title=\"Show Thumbnails\"\n      data-l10n-id=\"pdfjs-thumbs-button\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n    >\n      <span data-l10n-id=\"pdfjs-thumbs-button-label\">Thumbnails</span>\n      <svg aria-hidden=\"true\" focusable=\"false\" 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=\"pdfjs-document-outline-button\"\n      hidden=\"true\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n      aria-label=\"Show Document Outline (double-click to expand/collapse all items)\"\n    >\n      <span data-l10n-id=\"pdfjs-document-outline-button-label\">Document Outline</span>\n      <svg aria-hidden=\"true\" focusable=\"false\" 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=\"pdfjs-attachments-button\"\n      hidden=\"true\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n    >\n      <span data-l10n-id=\"pdfjs-attachments-button-label\">Attachments</span>\n      <svg aria-hidden=\"true\" focusable=\"false\" 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      type=\"button\"\n      title=\"Show Layers (double-click to reset all layers to the default state)\"\n      data-l10n-id=\"pdfjs-layers-button\"\n      hidden=\"true\"\n      [style.zoom]=\"mobileFriendlyZoomScale\"\n      aria-label=\"Show Layers (double-click to reset all layers to the default state)\"\n    >\n      <span data-l10n-id=\"pdfjs-layers-button-label\">Layers</span>\n      <svg\n        aria-hidden=\"true\"\n        focusable=\"false\"\n        width=\"20px\"\n        height=\"20px\"\n        class=\"margin-left-1px\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        fill=\"currentColor\"\n        viewBox=\"0 0 4.233 4.233\"\n      >\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      <button\n        type=\"button\"\n        id=\"currentOutlineItem\"\n        class=\"toolbarButton\"\n        disabled=\"disabled\"\n        title=\"Find Current Outline Item\"\n        data-l10n-id=\"pdfjs-current-outline-item-button\"\n        [style.zoom]=\"mobileFriendlyZoomScale\"\n        aria-label=\"Find Current Outline Item\"\n      >\n        <span data-l10n-id=\"pdfjs-current-outline-item-button-label\">Current Outline Item</span>\n        <svg aria-hidden=\"true\" focusable=\"false\" 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';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = 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\n    id=\"sidebarContainer\"\n    [style.top]=\"sidebarPositionTop\"\n  >\n    <div\n      id=\"additionalSidebarContainer\"\n      class=\"hidden\"\n      [class.hidden]=\"hideSidebarToolbar\"\n    >\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\"></div>\n  </div>\n</ng-template>\n","import { AfterContentInit, AfterViewInit, Component, ContentChild, ElementRef, Input, OnChanges, OnInit, Renderer2, ViewChild, effect } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PdfCspPolicyService } from '../../pdf-csp-policy.service';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveCSSClass } from '../../responsive-visibility';\nimport { PdfShyButtonService } from './pdf-shy-button-service';\n\n@Component({\n  selector: 'pdf-shy-button',\n  styleUrls: ['./pdf-shy-button.component.scss'],\n  templateUrl: './pdf-shy-button.component.html',\n})\nexport class PdfShyButtonComponent implements OnInit, OnChanges, AfterViewInit, AfterContentInit {\n  @Input()\n  public primaryToolbarId: string;\n\n  @Input()\n  public secondaryMenuId: string;\n\n  @Input()\n  public cssClass: ResponsiveCSSClass = 'invisible';\n\n  @Input()\n  public eventBusName: string | undefined = undefined;\n\n  @Input()\n  public l10nId: string;\n\n  @Input()\n  public l10nLabel: string;\n\n  @Input()\n  public title: string;\n\n  @Input()\n  public toggled: boolean;\n\n  @Input()\n  public disabled: boolean;\n\n  @Input()\n  public order: number;\n\n  @Input()\n  public action: ((htmlEvent?: Event, isSecondaryMenue?: boolean) => void) | undefined = undefined;\n\n  @Input()\n  public closeOnClick: boolean = true;\n\n  @Input()\n  public onlySecondaryMenu: boolean = false;\n\n  @Input()\n  public ariaHasPopup: boolean | 'true' | 'menu' | 'dialog' = false;\n\n  @Input()\n  public ariaControls: string | undefined;\n\n  @Input()\n  public role: string | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public renderContent = false;\n\n  @ViewChild('buttonRef', { static: false }) buttonRef: ElementRef;\n\n  @ContentChild('nestedContent', { static: false }) nestedContent: ElementRef | null = null;\n\n  private _imageHtml: string | undefined;\n\n  public get imageHtml(): string | SafeHtml | undefined {\n    if (this._imageHtml) {\n      // allow non-literal svg tags (sanitized in the setter)\n      return this.sanitizer.bypassSecurityTrustHtml(this._imageHtml); // NOSONAR\n    }\n    return undefined;\n  }\n\n  @Input()\n  public set image(value: string) {\n    const svgTags = [\n      // 'a' is not allowed!\n      'animate',\n      'animateMotion',\n      'animateTransform',\n      'audio',\n      'canvas',\n      'circle',\n      'clipPath',\n      'defs',\n      'desc',\n      'discard',\n      'ellipse',\n      'feBlend',\n      'feColorMatrix',\n      'feComponentTransfer',\n      'feComposite',\n      'feConvolveMatrix',\n      'feDiffuseLighting',\n      'feDisplacementMap',\n      'feDistantLight',\n      'feDropShadow',\n      'feFlood',\n      'feFuncA',\n      'feFuncB',\n      'feFuncG',\n      'feFuncR',\n      'feGaussianBlur',\n      'feImage',\n      'feMerge',\n      'feMergeNode',\n      'feMorphology',\n      'feOffset',\n      'fePointLight',\n      'feSpecularLighting',\n      'feSpotLight',\n      'feTile',\n      'feTurbulence',\n      'filter',\n      'foreignObject',\n      'g',\n      'iframe',\n      'image',\n      'line',\n      'linearGradient',\n      'marker',\n      'mask',\n      'metadata',\n      'mpath',\n      'path',\n      'pattern',\n      'polygon',\n      'polyline',\n      'radialGradient',\n      'rect',\n      'script',\n      'set',\n      'stop',\n      'style',\n      'svg',\n      'switch',\n      'symbol',\n      'text',\n      'textPath',\n      'title',\n      'tspan',\n      'unknown',\n      'use',\n      'video',\n      'view',\n    ];\n\n    // only <svg> and SVG tags are allowed\n    const tags = value.split('<').filter((tag) => tag.length > 0);\n    const legal = tags.every((tag) => tag.startsWith('svg') || tag.startsWith('/') || svgTags.includes(tag.split(/\\s|>/)[0]));\n    if (!legal) {\n      throw new Error('Illegal image for PDFShyButton. Only SVG images are allowed. Please use only the tags <svg> and <path>. ' + value);\n    }\n    this._imageHtml = this.pdfCspPolicyService.sanitizeHTML(value);\n  }\n\n  constructor(\n    private pdfShyButtonServiceService: PdfShyButtonService,\n    private sanitizer: DomSanitizer,\n    private renderer: Renderer2,\n    notificationService: PDFNotificationService,\n    private pdfCspPolicyService: PdfCspPolicyService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public ngAfterViewInit(): void {\n    this.updateButtonImage();\n  }\n\n  public ngOnInit(): void {\n    this.pdfShyButtonServiceService.add(this);\n  }\n\n  public ngOnChanges(changes: any): void {\n    this.pdfShyButtonServiceService.update(this);\n  }\n\n  public onClick(htmlEvent: Event): void {\n    if (htmlEvent instanceof KeyboardEvent && htmlEvent.key !== 'Enter' && htmlEvent.key !== ' ') {\n      return;\n    }\n\n    if (this.action) {\n      this.action(htmlEvent, false);\n      htmlEvent.preventDefault();\n    } else if (this.eventBusName) {\n      this.PDFViewerApplication?.eventBus.dispatch(this.eventBusName);\n      htmlEvent.preventDefault();\n    }\n  }\n\n  public updateButtonImage() {\n    if (this.buttonRef) {\n      const el = this.buttonRef.nativeElement;\n      if (this._imageHtml) {\n        const temp = this.renderer.createElement('div');\n        this.pdfCspPolicyService.addTrustedHTML(temp, this._imageHtml);\n        const image = temp.children[0];\n        if (!el.innerHTML.includes(image.innerHTML)) {\n          // if using SSR, the HTML code may already be there\n          this.renderer.appendChild(el, image);\n        }\n      } else {\n        const childNodes = el.childNodes;\n        for (let child of childNodes) {\n          this.renderer.removeChild(el, child);\n        }\n      }\n    }\n  }\n\n  ngAfterContentInit() {\n    if (this.primaryToolbarId === 'nestedComponent') {\n      this.renderContent = !!this.nestedContent;\n      console.log('renderContent', this.renderContent);\n    }\n  }\n}\n","@if (!onlySecondaryMenu) {\n@if (nestedContent) {\n<span (click)=\"onClick($event)\" onKeyDown=\"onClick($event)\" [class]=\"cssClass\">\n  <ng-content></ng-content>\n</span>\n}\n@else {\n<button type=\"button\" [id]=\"primaryToolbarId\" class=\"toolbarButton\" [class]=\"cssClass\" [title]=\"title\"\n  [attr.data-l10n-id]=\"l10nId\" [class.toggled]=\"toggled\" [disabled]=\"disabled\" (click)=\"onClick($event)\"\n  [attr.aria-label]=\"title\" [attr.role]=\"role\" [attr.aria-expanded]=\"toggled ? 'true' : (ariaHasPopup ? 'false' : null)\"\n  [attr.aria-haspopup]=\"ariaHasPopup\" [attr.aria-controls]=\"ariaControls\" #buttonRef></button>\n}\n}","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-book-mode',\n  templateUrl: './pdf-book-mode.component.html',\n  styleUrls: ['./pdf-book-mode.component.css'],\n})\nexport class PdfBookModeComponent implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  public onClick?: () => void;\n\n  constructor() {\n    const emitter = this.pageViewModeChange;\n    this.onClick = () => {\n      setTimeout(() => {\n        emitter.emit('book');\n      });\n    };\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'always-in-secondary-menu'\"\n  title=\"Book mode\"\n  primaryToolbarId=\"book-mode\"\n  [toggled]=\"pageViewMode == 'book'\"\n  [action]=\"onClick\"\n  [order]=\"3400\"\n  [closeOnClick]=\"false\"\n  image=\"<svg aria-hidden='true' focusable='false' xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24' fill='currentColor'><path d='M560-574v-48q33-14 67.5-21t72.5-7q26 0 51 4t49 10v44q-24-9-48.5-13.5T700-610q-38 0-73 9.5T560-574Zm0 220v-49q33-13.5 67.5-20.25T700-430q26 0 51 4t49 10v44q-24-9-48.5-13.5T700-390q-38 0-73 9t-67 27Zm0-110v-48q33-14 67.5-21t72.5-7q26 0 51 4t49 10v44q-24-9-48.5-13.5T700-500q-38 0-73 9.5T560-464ZM248-300q53.566 0 104.283 12.5T452-250v-427q-45-30-97.619-46.5Q301.763-740 248-740q-38 0-74.5 9.5T100-707v434q31-14 70.5-20.5T248-300Zm264 50q50-25 98-37.5T712-300q38 0 78.5 6t69.5 16v-429q-34-17-71.822-25-37.823-8-76.178-8-54 0-104.5 16.5T512-677v427Zm-30 90q-51-38-111-58.5T248-239q-36.537 0-71.768 9Q141-221 106-208q-23.1 11-44.55-3Q40-225 40-251v-463q0-15 7-27.5T68-761q42-20 87.395-29.5Q200.789-800 248-800q63 0 122.5 17T482-731q51-35 109.5-52T712-800q46.868 0 91.934 9.5Q849-781 891-761q14 7 21.5 19.5T920-714v463q0 27.894-22.5 42.447Q875-194 853-208q-34-14-69.232-22.5Q748.537-239 712-239q-63 0-121 21t-109 58ZM276-489Z'/></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-document-properties',\n  templateUrl: './pdf-document-properties.component.html',\n  styleUrls: ['./pdf-document-properties.component.css'],\n})\nexport class PdfDocumentPropertiesComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n}\n","<pdf-shy-button\n  title=\"Document Properties…\"\n  primaryToolbarId=\"documentProperties\"\n  [cssClass]=\"show | responsiveCSSClass : 'always-in-secondary-menu'\"\n  l10nId=\"pdfjs-document-properties-button\"\n  l10nLabel=\"pdfjs-document-properties-button-label\"\n  [order]=\"5000\"\n  eventBusName=\"documentproperties\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='16px' height='16px' viewBox='0 0 16 16'><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' /><path fill='currentColor' d='M8 7a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0V8a1 1 0 0 0-1-1z' /><circle fill='currentColor' cx='8' cy='5' r='1.188' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = true;\n}\n","<pdf-shy-button primaryToolbarId=\"downloadButton\" secondaryMenuId=\"secondaryDownload\"\n  [cssClass]=\"showDownloadButton | responsiveCSSClass : 'hiddenSmallView'\" title=\"Download\" l10nId=\"pdfjs-save-button\"\n  l10nLabel=\"pdfjs-save-button-label\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox= '0 0 24 24'><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 ' /></svg>\"\n  [order]=\"400\">\n</pdf-shy-button>","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-comment-editor',\n  templateUrl: './pdf-comment-editor.component.html',\n  styleUrls: ['./pdf-comment-editor.component.css'],\n})\nexport class PdfCommentEditorComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public isSelected = false;\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private cdr: ChangeDetectorRef,\n    private focusManagement: FocusManagementService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === AnnotationEditorType.POPUP;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorCommentParamsToolbar', 'Comment editor toolbar opened', 'editorCommentButton');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Comment editor toolbar closed');\n        }\n\n        this.cdr.detectChanges();\n      });\n    });\n  }\n\n  public onClick(event: PointerEvent): void {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.POPUP ? AnnotationEditorType.NONE : AnnotationEditorType.POPUP,\n      isFromKeyboard: event.detail === 0,\n    });\n\n    // Position the comment sidebar\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('editorCommentButton', 'editorCommentParamsToolbar');\n  }\n}\n","<pdf-shy-button\n  title=\"Comment\"\n  primaryToolbarId=\"editorCommentButton\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-comment-button\"\n  l10nLabel=\"pdfjs-editor-comment-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorCommentParamsToolbar\"\n  [order]=\"3900\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"false\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='0 0 24 24'> <path fill='currentColor' d='M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z' /> </svg>\"\n>\n</pdf-shy-button>","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-draw-editor',\n  templateUrl: './pdf-draw-editor.component.html',\n  styleUrls: ['./pdf-draw-editor.component.css'],\n})\nexport class PdfDrawEditorComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private cdr: ChangeDetectorRef,\n    private focusManagement: FocusManagementService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 15;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorInkParamsToolbar', 'Draw editor toolbar opened', 'primaryEditorInk');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Draw editor toolbar closed');\n        }\n\n        this.cdr.detectChanges();\n      });\n    });\n  }\n\n  public onClick(event: PointerEvent): void {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.INK ? AnnotationEditorType.NONE : AnnotationEditorType.INK,\n      isFromKeyboard: event.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorInk', 'editorInkParamsToolbar');\n  }\n}\n","<pdf-shy-button\n  title=\"Draw\"\n  primaryToolbarId=\"primaryEditorInk\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-ink-button\"\n  l10nLabel=\"pdfjs-editor-ink-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorInkParamsToolbar\"\n  [order]=\"4050\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' xmlns:xlink='http://www.w3.org/1999/xlink' enable-background='new 0 0 16 16' fill='currentColor'> <g> <g transform='scale(0.03125)'>  <path  d='m455.1,137.9l-32.4,32.4-81-81.1 32.4-32.4c6.6-6.6 18.1-6.6 24.7,0l56.3,56.4c6.8,6.8 6.8,17.9 0,24.7zm-270.7,271l-81-81.1 209.4-209.7 81,81.1-209.4,209.7zm-99.7-42l60.6,60.7-84.4,23.8 23.8-84.5zm399.3-282.6l-56.3-56.4c-11-11-50.7-31.8-82.4,0l-285.3,285.5c-2.5,2.5-4.3,5.5-5.2,8.9l-43,153.1c-2,7.1 0.1,14.7 5.2,20 5.2,5.3 15.6,6.2 20,5.2l153-43.1c3.4-0.9 6.4-2.7 8.9-5.2l285.1-285.5c22.7-22.7 22.7-59.7 0-82.5z'  /> </g> </g> </svg>\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, Input } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-editor-signature',\n  templateUrl: './pdf-editor-signature.component.html',\n  styleUrl: './pdf-editor-signature.component.css',\n})\nexport class PdfEditorSignatureComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly cdr: ChangeDetectorRef,\n    private focusManagement: FocusManagementService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === AnnotationEditorType.SIGNATURE;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorSignatureParamsToolbar', 'Signature editor toolbar opened', 'primaryEditorSignatureButton');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Signature editor toolbar closed');\n        }\n\n        this.cdr.detectChanges();\n      });\n    });\n  }\n\n  public onClick(event: PointerEvent): void {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.SIGNATURE ? AnnotationEditorType.NONE : AnnotationEditorType.SIGNATURE,\n      isFromKeyboard: event.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorSignatureButton', 'editorSignatureParamsToolbar');\n  }\n}\n","<pdf-shy-button\n  title=\"Signature\"\n  primaryToolbarId=\"primaryEditorSignatureButton\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-signature-button\"\n  l10nLabel=\"pdfjs-editor-signature-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorSignatureParamsToolbar\"\n  [order]=\"4000\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  image=\"<svg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M11.618 12.868L11.254 13.25H10.423C10.335 13.396 10.182 13.5 10 13.5H2C1.725 13.5 1.5 13.275 1.5 13V2C1.5 1.725 1.725 1.5 2 1.5H6.939L7 1.561V4.5C7 4.776 7.224 5 7.5 5H10.439L10.5 5.061V6.515L12 5.015V4.75C12 4.551 11.921 4.36 11.78 4.22L7.78 0.22C7.64 0.079 7.449 0 7.25 0H2C0.895 0 0 0.895 0 2V13C0 14.105 0.895 15 2 15H10C11.105 15 12 14.105 12 13V12.486L11.618 12.868Z' fill='black'/><path d='M13.836 4.946C13.962 4.819 14.13 4.75 14.309 4.75C14.487 4.75 14.655 4.819 14.782 4.945L15.805 5.969C15.931 6.094 16 6.262 16 6.441C16 6.621 15.931 6.789 15.805 6.915L14.9397 7.78033L12.9707 5.81134L13.836 4.946Z' fill='black'/><path d='M12.4403 6.34167L8.84 9.942C8.793 9.989 8.767 10.052 8.767 10.119V11.75C8.767 11.888 8.879 12 9.017 12H10.616L10.793 11.927L14.4093 8.31067L12.4403 6.34167Z' fill='black'/><path d='M7.517 9.84799V10.016H7.516V11.517C7.49168 11.4944 7.46584 11.4738 7.44007 11.4532C7.39062 11.4138 7.34148 11.3746 7.304 11.322L7.081 11.009C7.071 10.992 7.037 10.946 6.966 10.957C6.93 10.962 6.882 10.982 6.859 11.046C6.705 11.486 6.492 12.087 5.938 12.087H5.921C5.317 12.07 5.009 11.557 4.745 9.98599L4.382 10.954C4.146 11.585 3.535 12.009 2.861 12.009H2.5V10.759H2.861C3.017 10.759 3.158 10.661 3.213 10.515L3.883 8.72799C4.05 8.28199 4.494 8.01899 4.955 8.07299C5.434 8.12799 5.796 8.48599 5.858 8.96399C5.921 9.43699 5.98 9.80399 6.035 10.085C6.24 9.89099 6.504 9.76099 6.795 9.71999C7.048 9.68399 7.291 9.74599 7.517 9.84799Z' fill='black'/></svg>\">\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-highlight-editor',\n  templateUrl: './pdf-highlight-editor.component.html',\n  styleUrls: ['./pdf-highlight-editor.component.css'],\n})\nexport class PdfHighlightEditorComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private cdr: ChangeDetectorRef,\n    private focusManagement: FocusManagementService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 9;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorHighlightParamsToolbar', 'Highlight editor toolbar opened', 'primaryEditorHighlight');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Highlight editor toolbar closed');\n        }\n\n        this.cdr.detectChanges();\n      });\n    });\n  }\n\n  public onClick(event: PointerEvent): void {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.HIGHLIGHT ? AnnotationEditorType.NONE : AnnotationEditorType.HIGHLIGHT,\n      isFromKeyboard: event.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorHighlight', 'editorHighlightParamsToolbar');\n  }\n}\n","<pdf-shy-button\n  title=\"Highlight\"\n  primaryToolbarId=\"primaryEditorHighlight\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-highlight-button\"\n  l10nLabel=\"pdfjs-editor-highlight-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorHighlightParamsToolbar\"\n  [order]=\"4050\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='0 0 24 24'> <path fill='currentColor' d='M18.5,1.15C17.97,1.15 17.46,1.34 17.07,1.73L11.26,7.55L16.91,13.2L22.73,7.39C23.5,6.61 23.5,5.35 22.73,4.56L19.89,1.73C19.5,1.34 19,1.15 18.5,1.15M10.3,8.5L4.34,14.46C3.56,15.24 3.56,16.5 4.36,17.31C3.14,18.54 1.9,19.77 0.67,21H6.33L7.19,20.14C7.97,20.9 9.22,20.89 10,20.12L15.95,14.16' /></svg>\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { getVersionSuffix, pdfDefaultOptions } from '../../options/pdf-default-options';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-stamp-editor',\n  templateUrl: './pdf-stamp-editor.component.html',\n  styleUrls: ['./pdf-stamp-editor.component.css'],\n})\nexport class PdfStampEditorComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public get pdfJsVersion(): string {\n    return getVersionSuffix(pdfDefaultOptions.assetsFolder);\n  }\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private cdr: ChangeDetectorRef,\n    private positioningService: PositioningService,\n    private focusManagement: FocusManagementService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 13;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorStampParamsToolbar', 'Stamp editor toolbar opened', 'primaryEditorStamp');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Stamp editor toolbar closed');\n        }\n\n        this.cdr.detectChanges();\n      });\n    });\n  }\n\n  public onClick(event: PointerEvent): void {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.STAMP ? AnnotationEditorType.NONE : AnnotationEditorType.STAMP,\n      isFromKeyboard: event.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorStamp', 'editorStampParamsToolbar');\n  }\n}\n","<pdf-shy-button title=\"Text\" primaryToolbarId=\"primaryEditorStamp\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\" l10nId=\"pdfjs-editor-stamp-button\"\n  l10nLabel=\"pdfjs-editor-stamp-button-label\" role=\"radio\" ariaHasPopup=\"true\"\n  ariaControls=\"editorStampParamsToolbar\" [order]=\"4200\" [action]=\"onClick\" [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='0 0 24 24'> <path fill='currentColor' d='M13 19C13 19.7 13.13 20.37 13.35 21H5C3.9 21 3 20.11 3 19V5C3 3.9 3.9 3 5 3H19C20.11 3 21 3.9 21 5V13.35C20.37 13.13 19.7 13 19 13V5H5V19H13M13.96 12.29L11.21 15.83L9.25 13.47L6.5 17H13.35C13.75 15.88 14.47 14.91 15.4 14.21L13.96 12.29M20 18V15H18V18H15V20H18V23H20V20H23V18H20Z' /> </svg>\">\n</pdf-shy-button>","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-text-editor',\n  templateUrl: './pdf-text-editor.component.html',\n  styleUrls: ['./pdf-text-editor.component.css'],\n})\nexport class PdfTextEditorComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public isSelected = false;\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private cdr: ChangeDetectorRef,\n    private focusManagement: FocusManagementService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 3;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorFreeTextParamsToolbar', 'Text editor toolbar opened', 'primaryEditorFreeText');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Text editor toolbar closed');\n        }\n\n        this.cdr.detectChanges();\n      });\n    });\n  }\n\n  public onClick(event: PointerEvent): void {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.FREETEXT ? AnnotationEditorType.NONE : AnnotationEditorType.FREETEXT,\n      isFromKeyboard: event.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorFreeText', 'editorFreeTextParamsToolbar');\n  }\n}\n","<pdf-shy-button\n  title=\"Draw\"\n  primaryToolbarId=\"primaryEditorFreeText\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-free-text-button\"\n  l10nLabel=\"pdfjs-editor-free-text-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorFreeTextParamsToolbar\"\n  [order]=\"4100\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='0 0 24 24'> <path fill='currentColor' d='M18.5,4L19.66,8.35L18.7,8.61C18.25,7.74 17.79,6.87 17.26,6.43C16.73,6 16.11,6 15.5,6H13V16.5C13,17 13,17.5 13.33,17.75C13.67,18 14.33,18 15,18V19H9V18C9.67,18 10.33,18 10.67,17.75C11,17.5 11,17 11,16.5V6H8.5C7.89,6 7.27,6 6.74,6.43C6.21,6.87 5.75,7.74 5.3,8.61L4.34,8.35L5.5,4H18.5Z' /> </svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-editor',\n  templateUrl: './pdf-editor.component.html',\n  styleUrls: ['./pdf-editor.component.css'],\n})\nexport class PdfEditorComponent {\n  @Input()\n  public showCommentEditor: ResponsiveVisibility = true;\n\n  @Input()\n  public showDrawEditor: ResponsiveVisibility = true;\n\n  @Input()\n  public showHighlightEditor: ResponsiveVisibility = true;\n\n  @Input()\n  public showTextEditor: ResponsiveVisibility = true;\n\n  @Input()\n  public showSignatureEditor: ResponsiveVisibility = true;\n\n  @Input()\n  public showStampEditor: ResponsiveVisibility = true;\n}\n","<div id=\"editorModeButtons\" class=\"splitToolbarButton toggled\" role=\"radiogroup\">\n  <pdf-comment-editor [show]=\"showCommentEditor\"></pdf-comment-editor>\n  <pdf-editor-signature [show]=\"showSignatureEditor\"></pdf-editor-signature>\n  <pdf-highlight-editor [show]=\"showHighlightEditor\"></pdf-highlight-editor>\n  <pdf-text-editor [show]=\"showTextEditor\"></pdf-text-editor>\n  <pdf-stamp-editor [show]=\"showStampEditor\"></pdf-stamp-editor>\n  <pdf-draw-editor [show]=\"showDrawEditor\"></pdf-draw-editor>\n</div>","import { Component, Input, effect } from '@angular/core';\nimport { ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { SpreadType } from '../../options/spread-type';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-even-spread',\n  templateUrl: './pdf-even-spread.component.html',\n  styleUrls: ['./pdf-even-spread.component.css'],\n})\nexport class PdfEvenSpreadComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public spread: SpreadType = 'off';\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n      });\n    });\n  }\n\n  public onClick(): void {\n    if (this.PDFViewerApplication) {\n      this.PDFViewerApplication.pdfViewer.spreadMode = 2;\n    }\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'always-in-secondary-menu'\"\n  [toggled]=\"spread === 'even'\"\n  title=\"Join page spreads starting with even-numbered pages\"\n  primaryToolbarId=\"spreadEven\"\n  l10nId=\"pdfjs-spread-even-button\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-spread-even-button-label\"\n  [order]=\"2200\"\n  [closeOnClick]=\"false\"\n  [disabled]=\"scrollMode === 1\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='24px' height='24px'><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'/></svg>\"\n>\n</pdf-shy-button>\n","import { Component, effect, Input } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility | undefined = undefined;\n\n  // This is set internally by the viewer after loading a document. If the document has a text layer, the viewer will set this to true.\n  @Input()\n  public hasTextLayer = false;\n\n  @Input()\n  public textLayer: boolean | undefined = undefined;\n\n  @Input()\n  public findbarVisible = false;\n  private PDFViewerApplication!: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public onClick() {\n    const PDFViewerApplication: any = this.PDFViewerApplication;\n    if (PDFViewerApplication.findBar.opened) {\n      PDFViewerApplication.findBar.close();\n    } else {\n      PDFViewerApplication.findBar.open();\n      const positioningService = new PositioningService();\n      positioningService.positionPopupBelowItsButton('primaryViewFind', 'findbar');\n    }\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"showFindButton | responsiveCSSClass : ((textLayer && hasTextLayer) ? 'always-visible' : 'invisible')\"\n  primaryToolbarId=\"primaryViewFind\" title=\"Find in Document\" l10nId=\"pdfjs-findbar-button\"\n  l10nLabel=\"pdfjs-findbar-button-label\" [order]=\"1400\" [action]=\"onClick\" [toggled]=\"findbarVisible\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'> <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' /> </svg>\">\n</pdf-shy-button>","import { Component, Input, effect } from '@angular/core';\nimport { HandtoolChanged } from '../../events/handtool-changed';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { PdfCursorTools } from './../../options/pdf-cursor-tools';\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: ResponsiveVisibility = true;\n\n  @Input()\n  public set handTool(value: boolean) {\n    this.isSelected = value;\n  }\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public isSelected = false;\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.HAND));\n  }\n\n  public onClick(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.HAND });\n  }\n}\n","<pdf-shy-button\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  primaryToolbarId=\"primaryCursorHandTool\"\n  [cssClass]=\"showHandToolButton | responsiveCSSClass : 'hiddenXLView'\"\n  title=\"Enable hand tool\"\n  l10nId=\"pdfjs-cursor-hand-tool-button\"\n  l10nLabel=\"pdfjs-cursor-hand-tool-button-label\"\n  [order]=\"1200\"\n  image=\"<svg aria-hidden='true' focusable='false' width='22px' height='22px' viewBox='0 0 24 24'> <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'/></svg>\"\n>\n</pdf-shy-button>\n","export enum ScrollMode {\n  UNKNOWN = -1,\n  VERTICAL = 0, // Default value.\n  HORIZONTAL = 1,\n  WRAPPED = 2,\n  PAGE = 3,\n  INFINITE = 4,\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output, effect } from '@angular/core';\nimport { ScrollMode } from '../../options/pdf-scroll-mode';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-horizontal-scroll',\n  templateUrl: './pdf-horizontal-scroll.component.html',\n  styleUrls: ['./pdf-horizontal-scroll.component.css'],\n})\nexport class PdfHorizontalScrollComponent implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  public onClick?: () => void;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n    const emitter = this.pageViewModeChange;\n    this.onClick = () => {\n      queueMicrotask(() => {\n        if (this.pageViewMode !== 'multiple' && this.pageViewMode !== 'infinite-scroll') {\n          emitter.emit('multiple');\n        }\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.HORIZONTAL });\n      });\n    };\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', (event) => {\n      queueMicrotask(() => {\n        this.scrollMode = event.mode;\n      });\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Use Horizontal Scrolling\"\n  primaryToolbarId=\"scrollHorizontal\"\n  l10nId=\"pdfjs-scroll-horizontal-button\"\n  [toggled]=\"scrollMode == 1\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-horizontal-button-label\"\n  [order]=\"3200\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='24px' height='24px'> <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' /> </svg>\"\n>\n</pdf-shy-button>\n","import { Component, effect, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ScrollMode } from '../../options/pdf-scroll-mode';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-infinite-scroll',\n  templateUrl: './pdf-infinite-scroll.component.html',\n  styleUrls: ['./pdf-infinite-scroll.component.css'],\n})\nexport class PdfInfiniteScrollComponent implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  public onClick?: () => void;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n    const emitter = this.pageViewModeChange;\n    this.onClick = () => {\n      queueMicrotask(() => {\n        if (this.pageViewMode === 'infinite-scroll') {\n          emitter.emit('multiple');\n        } else {\n          if (this.scrollMode !== ScrollModeType.wrapped && this.scrollMode !== ScrollModeType.vertical) {\n            this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.VERTICAL });\n          }\n          emitter.emit('infinite-scroll');\n        }\n      });\n    };\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Infinite scroll\"\n  primaryToolbarId=\"infiniteScroll\"\n  [toggled]=\"pageViewMode == 'infinite-scroll'\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-infinite-scroll-button-label\"\n  [order]=\"3400\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' xmlns='http://www.w3.org/2000/svg' height= '24' viewBox= '0 -960 960 960' width='24' fill='currentColor'><path d= 'M212-260q-90 0-151-65.5T0-482q0-90 61.5-154T212-700q36 0 69.5 12t59.5 37l93 90-42 42-89-87q-18-18-41.5-26t-49.5-8q-64 0-108 46.5T60-482q0 66 43.5 114T212-320q25 0 48.5-8t42.5-25l316-298q26-25 59.5-37t68.5-12q90 0 151.5 64T960-482q0 91-61.5 156.5T747-260q-35 0-69-11.5T619-308l-91-90 42-42 87 87q17 17 41 25t49 8q65 0 109-48t44-114q0-65-44.5-111.5T747-640q-25 0-48.5 9T657-605L341-307q-26 24-60 35.5T212-260Z '/></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input, effect } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\n\n@Component({\n  selector: 'pdf-move-down',\n  templateUrl: './pdf-move-down.component.html',\n  styleUrls: ['./pdf-move-down.component.css'],\n})\nexport class PdfMoveDownComponent {\n  @Input()\n  public showMoveDownButton: ResponsiveVisibility = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public movePageDown = () => {\n    if (this.PDFViewerApplication) {\n      const currentPage = this.PDFViewerApplication.page;\n      this.PDFViewerApplication.eventBus.dispatch('movePageDown', {\n        source: { pageNumber: currentPage }\n      });\n    }\n  };\n}\n","<pdf-shy-button\n  primaryToolbarId=\"primaryMoveDownButton\"\n  secondaryMenuId=\"secondaryMoveDownButton\"\n  [cssClass]=\"showMoveDownButton | responsiveCSSClass: 'hiddenSmallView'\"\n  title=\"Move Page Down\"\n  l10nLabel=\"pdfjs-editor-movePageDown-button-label\"\n  [action]=\"movePageDown\"\n  image=\"<svg viewBox='0 0 24 24' height='20px' width='24px' aria-hidden='true'><path d='M14 2l6 6v7a2 2 0 0 1-2 2v-3H6v3a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8m4 12v-5h-5v-5H6v10h12z' fill='currentColor'></path><path d='M6 16h12' stroke-dasharray='3,2' stroke-width='2' stroke='currentColor' fill='none'></path><path d='M12 23l-4-4h8l-4 4z' fill='currentColor'></path></svg>\"\n  [order]=\"450\"\n>\n</pdf-shy-button>\n","import { Component, Input, effect } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\n\n@Component({\n  selector: 'pdf-move-up',\n  templateUrl: './pdf-move-up.component.html',\n  styleUrls: ['./pdf-move-up.component.css'],\n})\nexport class PdfMoveUpComponent {\n  @Input()\n  public showMoveUpButton: ResponsiveVisibility = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public movePageUp = () => {\n    if (this.PDFViewerApplication) {\n      const currentPage = this.PDFViewerApplication.page;\n      this.PDFViewerApplication.eventBus.dispatch('movePageUp', {\n        source: { pageNumber: currentPage }\n      });\n    }\n  };\n}\n","<pdf-shy-button\n  primaryToolbarId=\"primaryMoveUpButton\"\n  secondaryMenuId=\"secondaryMoveUpButton\"\n  [cssClass]=\"showMoveUpButton | responsiveCSSClass: 'hiddenSmallView'\"\n  title=\"Move Page Up\"\n  l10nLabel=\"pdfjs-editor-movePageUp-button-label\"\n  [action]=\"movePageUp\"\n  image=\"<svg viewBox='0 0 24 24' height='20px' width='24px' aria-hidden='true'><path d='M12 1L8 5h8l-4-4z' fill='currentColor'></path><path d='M14 7l6 6v7a2 2 0 0 1-2 2v-3H6v3a2 2 0 0 1-2-2v-11a2 2 0 0 1 2-2h8m4 12v-5h-5v-5H6v10h12z' fill='currentColor'></path><path d='M6 21h12' stroke-dasharray='3,2' stroke-width='2' stroke='currentColor' fill='none'></path></svg>\"\n  [order]=\"460\"\n>\n</pdf-shy-button>\n","import { Component, Input, effect } from '@angular/core';\nimport { ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { SpreadType } from '../../options/spread-type';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-no-spread',\n  templateUrl: './pdf-no-spread.component.html',\n  styleUrls: ['./pdf-no-spread.component.css'],\n})\nexport class PdfNoSpreadComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public spread: SpreadType = 'off';\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n      });\n    });\n  }\n\n  public onClick(): void {\n    if (this.PDFViewerApplication) {\n      this.PDFViewerApplication.pdfViewer.spreadMode = 0;\n    }\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'always-in-secondary-menu'\"\n  title=\"Do not join page spreads\"\n  primaryToolbarId=\"spreadNone\"\n  l10nId=\"pdfjs-spread-none-button\"\n  [toggled]=\"spread === 'off'\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-spread-none-button-label\"\n  [order]=\"2000\"\n  [closeOnClick]=\"false\"\n  [disabled]=\"scrollMode === 1\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='24px' height='24px' viewBox='0 0 24 24'><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' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input, effect } from '@angular/core';\nimport { ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { SpreadType } from '../../options/spread-type';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-odd-spread',\n  templateUrl: './pdf-odd-spread.component.html',\n  styleUrls: ['./pdf-odd-spread.component.css'],\n})\nexport class PdfOddSpreadComponent {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  public spread: SpreadType = 'off';\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n      });\n    });\n  }\n\n  public onClick(): void {\n    if (this.PDFViewerApplication) {\n      this.PDFViewerApplication.pdfViewer.spreadMode = 1;\n    }\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'always-in-secondary-menu'\"\n  title=\"Join page spreads starting with odd-numbered pages\"\n  primaryToolbarId=\"spreadOdd\"\n  [toggled]=\"spread === 'odd'\"\n  l10nId=\"pdfjs-spread-odd-button\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-spread-odd-button-label\"\n  [order]=\"2100\"\n  [closeOnClick]=\"false\"\n  [disabled]=\"scrollMode === 1\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='24px' height='24px' viewBox='0 0 24 24'><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' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, effect, Input } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public onClick = (htmlEvent: Event, secondaryToolbar: boolean) => {\n    if (!secondaryToolbar) {\n      this.PDFViewerApplication?.eventBus?.dispatch('openfile', { source: window });\n    }\n  };\n}\n","<pdf-shy-button\n  [cssClass]=\"showOpenFileButton | responsiveCSSClass : 'hiddenMediumView'\"\n  primaryToolbarId=\"openFile\"\n  title=\"Open File\"\n  l10nId=\"pdfjs-open-file-button\"\n  l10nLabel=\"pdfjs-open-file-button-label\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='20px' viewBox='0 0 24 24'><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' /></svg>\"\n  [order]=\"200\"\n  [action]=\"onClick\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\nimport { PDFNotificationService } from './../../../pdf-notification-service';\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  @Input()\n  public show: ResponsiveVisibility = true;\n\n  public disableFirstPage = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public firstPage(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('firstpage');\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableFirstPage = event.pageNumber <= 1;\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenSmallView'\"\n  title=\"First page\"\n  primaryToolbarId=\"primaryFirstPage\"\n  l10nId=\"pdfjs-first-page-button\"\n  (click)=\"firstPage()\"\n  [disabled]=\"disableFirstPage\"\n  l10nLabel=\"pdfjs-first-page-button-label\"\n  [order]=\"500\"\n  eventBusName=\"firstpage\"\n  [closeOnClick]=\"false\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z' /></svg>\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, Input } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\nimport { PDFNotificationService } from './../../../pdf-notification-service';\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  @Input()\n  public show: ResponsiveVisibility = true;\n  public disableLastPage = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public firstPage(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('firstpage');\n  }\n\n  public onPdfJsInit(): void {\n    this.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.changeDetectorRef.markForCheck();\n  }\n\n  public lastPage(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('lastpage');\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenSmallView'\"\n  title=\"Last page\"\n  primaryToolbarId=\"primaryLastPage\"\n  l10nId=\"pdfjs-last-page-button\"\n  l10nLabel=\"pdfjs-last-page-button-label\"\n  (click)=\"lastPage()\"\n  [disabled]=\"disableLastPage\"\n  [order]=\"800\"\n  eventBusName=\"lastpage\"\n  [closeOnClick]=\"false\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z' /></svg>\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, Input } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\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  @Input()\n  public show: ResponsiveVisibility = true;\n  public disableNextPage = true;\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableNextPage = event.pageNumber === event.pagesCount;\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","<pdf-shy-button\n  title=\"Next Page\"\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenXXSView'\"\n  primaryToolbarId=\"primaryNext\"\n  secondaryMenuId=\"primaryNextPage\"\n  l10nId=\"pdfjs-next-button\"\n  l10nLabel=\"pdfjs-next-button-label\"\n  [disabled]=\"disableNextPage\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z' /></svg>\"\n  [order]=\"700\"\n  [closeOnClick]=\"false\"\n  eventBusName=\"nextpage\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\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 showPageNumber: ResponsiveVisibility = true;\n  @Input()\n  public showPageLabel: ResponsiveVisibility = true;\n}\n","<span class=\"loadingInput start\" [class]=\"showPageNumber | responsiveCSSClass : 'hiddenTinyView'\">\n  <input\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=\"pdfjs-page-input\"\n    autocomplete=\"off\"\n  />\n</span>\n<span [class]=\"showPageLabel | responsiveCSSClass : 'hiddenLargeView'\" id=\"numPages\" class=\"toolbarLabel\"></span>\n","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\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  @Input()\n  public show: ResponsiveVisibility = true;\n  public disablePreviousPage = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disablePreviousPage = event.pageNumber <= 1;\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass : 'hiddenXXSView'\"\n  title=\"Previous Page\"\n  primaryToolbarId=\"primaryPrevious\"\n  secondaryMenuId=\"secondaryPreviousPage\"\n  l10nId=\"pdfjs-previous-button\"\n  l10nLabel=\"pdfjs-previous-button-label\"\n  [disabled]=\"disablePreviousPage\"\n  [order]=\"600\"\n  eventBusName=\"previouspage\"\n  [closeOnClick]=\"false\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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  @Input()\n  public showPagingButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showFirstAndLastPageButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showPreviousAndNextPageButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showPageNumber: ResponsiveVisibility = true;\n\n  @Input()\n  public showPageLabel: ResponsiveVisibility = true;\n}\n","<div [class]=\"showPagingButtons | responsiveCSSClass : 'hiddenXXSView'\" class=\"paging-left\">\n  <pdf-first-page class=\"margin-right-correct\" [show]=\"showFirstAndLastPageButtons\"></pdf-first-page>\n  <pdf-previous-page class=\"margin-left-correct\" [show]=\"showPreviousAndNextPageButtons\"></pdf-previous-page>\n</div>\n<pdf-page-number\n  [class]=\"showPagingButtons | responsiveCSSClass : 'hiddenXXSView'\"\n  [showPageNumber]=\"showPageNumber\"\n  [showPageLabel]=\"showPageLabel\"\n></pdf-page-number>\n<div [class]=\"showPagingButtons | responsiveCSSClass : 'hiddenXXSView'\" class=\"paging-right\">\n  <pdf-next-page class=\"margin-right-correct margin-left-correct\" [show]=\"showPreviousAndNextPageButtons\"></pdf-next-page>\n  <pdf-last-page class=\"margin-left-correct\" [show]=\"showFirstAndLastPageButtons\"></pdf-last-page>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = true;\n}\n","<pdf-shy-button\n  primaryToolbarId=\"presentationMode\"\n  [cssClass]=\"showPresentationModeButton | responsiveCSSClass : 'hiddenMediumView'\"\n  title=\"Switch to Presentation Mode\"\n  l10nId=\"pdfjs-presentation-mode-button\"\n  l10nLabel=\"pdfjs-presentation-mode-button-label\"\n  [order]=\"100\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top--2px' width='27px' height='27px' viewBox='0 0 24 24'><path fill='currentColor' d='M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = true;\n}\n","<pdf-shy-button primaryToolbarId=\"printButton\" [cssClass]=\"showPrintButton | responsiveCSSClass : 'hiddenTinyView'\"\n  title=\"Print\" l10nId=\"pdfjs-print-button\" l10nLabel=\"pdfjs-print-button-label\" [order]=\"300\"\n  image=\"<svg aria-hidden='true' focusable='false' width='22px' height='22px' viewBox='0 0 24 24'><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' /></svg>\">\n</pdf-shy-button>","import { ChangeDetectorRef, Component, Input, ViewEncapsulation, effect } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-rotate-page-cw',\n  templateUrl: './pdf-rotate-page-cw.component.html',\n  styleUrls: ['./pdf-rotate-page-cw.component.css'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfRotatePageCwComponent {\n  @Input()\n  public showRotateCwButton: ResponsiveVisibility = true;\n\n  public disableRotate = true;\n\n  @Input()\n  public clockwise = true;\n\n  @Input()\n  public counterClockwise = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public rotateCW(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('rotatecw');\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","@if (clockwise) {\n  <pdf-shy-button\n    [action]=\"rotateCW\"\n    primaryToolbarId=\"primaryPageRotateCw\"\n    class=\"rotateCw\"\n    [cssClass]=\"showRotateCwButton | responsiveCSSClass : 'hiddenXLView'\"\n    title=\"Rotate Clockwise\"\n    l10nId=\"pdfjs-page-rotate-cw-button\"\n    l10nLabel=\"pdfjs-page-rotate-cw-button-label\"\n    [disabled]=\"disableRotate\"\n    [order]=\"900\"\n    [closeOnClick]=\"false\"\n    image=\"<svg aria-hidden='true' focusable='false' class='width-height-23px' viewBox='0 0 24 24'><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'/></svg>\"\n    >\n  </pdf-shy-button>\n}\n","import { ChangeDetectorRef, Component, Input, ViewEncapsulation, effect } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-rotate-page-ccw',\n  templateUrl: './pdf-rotate-page-ccw.component.html',\n  styleUrls: ['./pdf-rotate-page-ccw.component.css'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PdfRotatePageCcwComponent {\n  @Input()\n  public showRotateCcwButton: ResponsiveVisibility = true;\n\n  public disableRotate = true;\n\n  @Input()\n  public counterClockwise = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public rotateCCW(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('rotateccw');\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","@if (counterClockwise) {\n  <pdf-shy-button\n    [action]=\"rotateCCW\"\n    primaryToolbarId=\"primaryPageRotateCcw\"\n    class=\"rotateCcw\"\n    [cssClass]=\"showRotateCcwButton | responsiveCSSClass : 'hiddenXLView'\"\n    title=\"Rotate Counterclockwise\"\n    l10nId=\"pdfjs-page-rotate-ccw-button\"\n    l10nLabel=\"pdfjs-page-rotate-ccw-button-label\"\n    [disabled]=\"disableRotate\"\n    [order]=\"1000\"\n    [closeOnClick]=\"false\"\n    image=\"<svg aria-hidden='true' focusable='false' class='width-height-23px' viewBox='0 0 24 24'><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'/></svg>\"\n    >\n  </pdf-shy-button>\n}\n","import { Component, Input, effect } from '@angular/core';\nimport { HandtoolChanged } from '../../events/handtool-changed';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { PdfCursorTools } from './../../options/pdf-cursor-tools';\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: ResponsiveVisibility = true;\n\n  public isSelected = true;\n\n  @Input()\n  public set handTool(value: boolean) {\n    this.isSelected = !value;\n  }\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.SELECT));\n  }\n\n  public onClick(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.SELECT });\n  }\n}\n","<pdf-shy-button\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  primaryToolbarId=\"primaryCursorSelectTool\"\n  [cssClass]=\"showSelectToolButton | responsiveCSSClass : 'hiddenXLView'\"\n  title=\"Enable text selection tool\"\n  l10nId=\"pdfjs-cursor-text-select-tool-button\"\n  l10nLabel=\"pdfjs-cursor-text-select-tool-button-label\"\n  image=\"<svg aria-hidden='true' focusable='false' width='22px' height='22px' viewBox='0 0 24 24'><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'/></svg>\"\n  [order]=\"1100\"\n>\n</pdf-shy-button>\n","import { Component, EventEmitter, Input, OnDestroy, Output, effect } from '@angular/core';\nimport { ScrollMode } from '../../options/pdf-scroll-mode';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-single-page-mode',\n  templateUrl: './pdf-single-page-mode.component.html',\n  styleUrls: ['./pdf-single-page-mode.component.css'],\n})\nexport class PdfSinglePageModeComponent implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  public onClick?: () => void;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n\n    this.onClick = () => {\n      queueMicrotask(() => {\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.PAGE });\n      });\n    };\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', (event) => {\n      queueMicrotask(() => {\n        this.scrollMode = event.mode;\n      });\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Use Page Scrolling\"\n  primaryToolbarId=\"scrollPage\"\n  [toggled]=\"scrollMode == 3\"\n  l10nId=\"pdfjs-scroll-page-button\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-page-button-label\"\n  [order]=\"3000\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M10,7V9H12V17H14V7H10Z' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { NgxExtendedPdfViewerService } from '../../ngx-extended-pdf-viewer.service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = true;\n\n  constructor(public service: NgxExtendedPdfViewerService) {}\n\n  public onClick(event: Event): boolean {\n    event.preventDefault();\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('secondaryToolbarToggle', 'secondaryToolbar');\n    return false;\n  }\n}\n","<button\n  type=\"button\"\n  [class]=\"showSecondaryToolbarButton | responsiveCSSClass : 'always-visible'\"\n  id=\"secondaryToolbarToggle\"\n  class=\"toolbarButton\"\n  title=\"Tools\"\n  data-l10n-id=\"pdfjs-tools-button\"\n  aria-label=\"Tools\"\n  [class.hidden]=\"service.secondaryMenuIsEmpty\"\n>\n  <svg aria-hidden=\"true\" focusable=\"false\" width=\"27px\" height=\"27px\" viewBox=\"0 0 24 24\" (click)=\"onClick($event)\">\n    <path fill=\"currentColor\" d=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" />\n  </svg>\n  <span data-l10n-id=\"pdfjs-tools-button-label\">Tools</span>\n</button>\n","import { Component, effect, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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 implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public sidebarVisible: boolean | undefined = false;\n\n  @Output()\n  public showChange = new EventEmitter<boolean>();\n\n  public onClick?: () => void;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    const emitter = this.showChange;\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n    this.onClick = () => {\n      const newVisibility = !this.PDFViewerApplication?.pdfSidebar.isOpen;\n      emitter.emit(newVisibility);\n      this.PDFViewerApplication?.eventBus.dispatch('toggleSidebar', { visible: newVisibility });\n    };\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  title=\"Toggle Sidebar\"\n  primaryToolbarId=\"primarySidebarToggle\"\n  [cssClass]=\"show | responsiveCSSClass : 'always-visible'\"\n  [toggled]=\"sidebarVisible === true\"\n  l10nId=\"pdfjs-toggle-sidebar-button\"\n  l10nLabel=\"pdfjs-toggle-sidebar-button-label\"\n  [order]=\"4500\"\n  [closeOnClick]=\"true\"\n  [action]=\"onClick\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'> <path fill='currentColor' d='M3,9H17V7H3V9M3,13H17V11H3V13M3,17H17V15H3V17M19,17H21V15H19V17M19,7V9H21V7H19M19,13H21V11H19V13Z' /> </svg>\"\n>\n</pdf-shy-button>\n","import { Component, EventEmitter, Input, OnDestroy, Output, effect } from '@angular/core';\nimport { ScrollMode } from '../../options/pdf-scroll-mode';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-vertical-scroll-mode',\n  templateUrl: './pdf-vertical-scroll-mode.component.html',\n  styleUrls: ['./pdf-vertical-scroll-mode.component.css'],\n})\nexport class PdfVerticalScrollModeComponent implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  public onClick?: () => void;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n    const emitter = this.pageViewModeChange;\n    this.onClick = () => {\n      queueMicrotask(() => {\n        if (this.pageViewMode !== 'multiple' && this.pageViewMode !== 'infinite-scroll') {\n          emitter.emit('multiple');\n        }\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.VERTICAL });\n      });\n    };\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', (event) => {\n      queueMicrotask(() => {\n        this.scrollMode = event.mode;\n      });\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Use Vertical Scrolling\"\n  primaryToolbarId=\"scrollVertical\"\n  l10nId=\"pdfjs-scroll-vertical-button\"\n  [toggled]=\"scrollMode == 0 && pageViewMode !== 'book'\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-vertical-button-label\"\n  [order]=\"3100\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='24px' height='24px' viewBox='0 0 24 24'><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' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, EventEmitter, Input, OnDestroy, Output, effect } from '@angular/core';\nimport { ScrollMode } from '../../options/pdf-scroll-mode';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-wrapped-scroll-mode',\n  templateUrl: './pdf-wrapped-scroll-mode.component.html',\n  styleUrls: ['./pdf-wrapped-scroll-mode.component.css'],\n})\nexport class PdfWrappedScrollModeComponent implements OnDestroy {\n  @Input()\n  public show: ResponsiveVisibility = true;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  public onClick?: () => void;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(private notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n    const emitter = this.pageViewModeChange;\n    this.onClick = () => {\n      queueMicrotask(() => {\n        if (this.pageViewMode !== 'multiple' && this.pageViewMode !== 'infinite-scroll') {\n          emitter.emit('multiple');\n        }\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.WRAPPED });\n      });\n    };\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', (event) => {\n      queueMicrotask(() => {\n        this.scrollMode = event.mode;\n      });\n    });\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Wrapped Scrolling\"\n  primaryToolbarId=\"scrollWrapped\"\n  [toggled]=\"scrollMode == 2\"\n  l10nId=\"pdfjs-scroll-wrapped-button\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-wrapped-button-label\"\n  [order]=\"3300\"\n  [closeOnClick]=\"true\"\n  image=\"<svg aria-hidden='true' focusable='false' class='pdf-margin-top-3px' width='24px' height='24px' viewBox='0 0 24 24'><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' /></svg>\"\n>\n</pdf-shy-button>\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\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  @Input()\n  public showZoomDropdown: ResponsiveVisibility = true;\n  public _zoomLevels: Array<ZoomLevel> = [];\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    // const new TranslatePipe().transform('pdfjs-page-scale-percent', '{ $scale } %');\n\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: 'pdfjs-page-scale-' + v.replace('page-', ''),\n        dataL10nArgs: undefined,\n        displayValue: v,\n      };\n    }\n    const percentage = Math.round(numericalValue * 100);\n    const percentageAsString = isNaN(percentage) ? '' : String(percentage);\n    return {\n      id: `scale_${percentage}`,\n      value: String(numericalValue),\n      dataL10nId: 'pdfjs-page-scale-percent',\n      dataL10nArgs: `{ \"scale\": ${percentageAsString} }`,\n      displayValue: '',\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\n  id=\"scaleSelectContainer\"\n  [class]=\"showZoomDropdown | responsiveCSSClass: 'hiddenTinyView'\"\n>\n  <select\n    id=\"scaleSelect\"\n    title=\"Zoom\"\n    data-l10n-id=\"pdfjs-zoom-select\"\n    #sizeSelector\n  >\n    @for (level of _zoomLevels; track level.id) {\n      <option\n        [id]=\"level.id\"\n        [attr.value]=\"level.value\"\n        [attr.data-l10n-id]=\"level.dataL10nId\"\n        [attr.data-l10n-args]=\"level.dataL10nArgs\"\n      >\n        {{ level.displayValue }}\n      </option>\n    }\n    <option\n      id=\"customScaleOption\"\n      title=\"\"\n      value=\"custom\"\n      disabled=\"disabled\"\n      hidden=\"true\"\n      data-l10n-id=\"pdfjs-page-scale-percent\"\n      data-l10n-args='{ \"scale\": 0 }'\n    >\n      0%\n    </option>\n  </select>\n</span>\n","import { Component, effect, Input, OnDestroy } from '@angular/core';\nimport { ScaleChangingEvent } from '../../../events/scale-changing-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\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 implements OnDestroy {\n  @Input()\n  public showZoomButtons: ResponsiveVisibility = true;\n\n  public disabled = true;\n  PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  private eventListener = ({ source, scale }: ScaleChangingEvent) => {\n    const maxZoom = source.maxZoom;\n    if (maxZoom) {\n      this.disabled = scale >= maxZoom;\n    } else {\n      this.disabled = false;\n    }\n  };\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('scalechanging', this.eventListener);\n  }\n\n  public ngOnDestroy() {\n    this.PDFViewerApplication?.eventBus.off('scalechanging', this.eventListener);\n    this.PDFViewerApplication = undefined;\n  }\n}\n","<pdf-shy-button\n  primaryToolbarId=\"primaryZoomIn\"\n  [cssClass]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\"\n  class=\"zoomIn\"\n  title=\"Zoom In\"\n  l10nId=\"pdfjs-zoom-in-button\"\n  l10nLabel=\"pdfjs-zoom-in-button-label\"\n  eventBusName=\"zoomin\"\n  [order]=\"1600\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z' /></svg>\"\n  [disabled]=\"disabled\"\n>\n</pdf-shy-button>\n","import { Component, effect, Input, OnDestroy } from '@angular/core';\nimport { ScaleChangingEvent } from '../../../events/scale-changing-event';\nimport { IPDFViewerApplication } from '../../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../../responsive-visibility';\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 implements OnDestroy {\n  @Input()\n  public showZoomButtons: ResponsiveVisibility = true;\n\n  public disabled = true;\n  PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  private eventListener = ({ source, scale }: ScaleChangingEvent) => {\n    const minZoom = source.minZoom;\n    if (minZoom) {\n      this.disabled = scale <= minZoom;\n    } else {\n      this.disabled = false;\n    }\n  };\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private onPdfJsInit() {\n    this.PDFViewerApplication?.eventBus.on('scalechanging', this.eventListener);\n  }\n\n  public ngOnDestroy() {\n    this.PDFViewerApplication?.eventBus.off('scalechanging', this.eventListener);\n    this.PDFViewerApplication = undefined;\n  }\n}\n","<pdf-shy-button\n  primaryToolbarId=\"primaryZoomOut\"\n  class=\"zoomOut\"\n  title=\"Zoom Out\"\n  l10nId=\"pdfjs-zoom-out-button\"\n  l10nLabel=\"pdfjs-zoom-out-button-label\"\n  eventBusName=\"zoomout\"\n  [cssClass]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\"\n  [order]=\"1500\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='0 0 24 24'><path fill='currentColor' d='M19,13H5V11H19V13Z' /></svg>\"\n  [disabled]=\"disabled\"\n>\n</pdf-shy-button>\n","import { Component, Input } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\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: ResponsiveVisibility = 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  @Input()\n  public showZoomDropdown: ResponsiveVisibility = true;\n}\n","<div id=\"toolbarViewerMiddle\" [class]=\"showZoomButtons | responsiveCSSClass : 'always-visible'\">\n  <pdf-zoom-out [showZoomButtons]=\"showZoomButtons\"></pdf-zoom-out>\n  <pdf-zoom-in [showZoomButtons]=\"showZoomButtons\"></pdf-zoom-in>\n  <pdf-zoom-dropdown class=\"reset-width-padding\" [zoomLevels]=\"zoomLevels\" [showZoomDropdown]=\"showZoomDropdown\"> </pdf-zoom-dropdown>\n</div>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PageViewModeType, ScrollModeType } from '../../options/pdf-viewer';\nimport { SpreadType } from '../../options/spread-type';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n  selector: 'pdf-toolbar',\n  templateUrl: './pdf-toolbar.component.html',\n  styleUrls: ['./pdf-toolbar.component.css'],\n})\nexport class PdfToolbarComponent implements AfterViewInit {\n  @Input()\n  public customToolbar: TemplateRef<any> | undefined;\n\n  // This is set internally by the viewer after loading a document. If the document has a text layer, the viewer will set this to true.\n  @Input()\n  public hasTextLayer = false;\n\n  @Input()\n  public mobileFriendlyZoomScale = 1;\n\n  @Input()\n  public primaryMenuVisible = true;\n\n  @Input()\n  public showDownloadButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showCommentEditor: ResponsiveVisibility = false;\n\n  @Input()\n  public showDrawEditor: ResponsiveVisibility = false;\n\n  @Input()\n  public showHighlightEditor: ResponsiveVisibility = true;\n\n  @Input()\n  public showTextEditor: ResponsiveVisibility = false;\n\n  @Input()\n  public showStampEditor: ResponsiveVisibility = false;\n\n  @Input()\n  public showFindButton: ResponsiveVisibility | undefined = undefined;\n\n  @Input()\n  public showHandToolButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showZoomDropdown: ResponsiveVisibility = true;\n\n  @Input()\n  public handTool = false;\n\n  @Input()\n  public showOpenFileButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showPrintButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showPagingButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showFirstAndLastPageButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showMovePageButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showPreviousAndNextPageButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showPageNumber: ResponsiveVisibility = true;\n\n  @Input()\n  public showPageLabel: ResponsiveVisibility = true;\n\n  @Input()\n  public showPresentationModeButton: ResponsiveVisibility = false;\n\n  @Input()\n  public showRotateCwButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showRotateCcwButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showSecondaryToolbarButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showSidebarButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showSignatureEditor: ResponsiveVisibility = false;\n\n  @Input()\n  public sidebarVisible: boolean | undefined = false;\n\n  @Input()\n  public showZoomButtons: ResponsiveVisibility = 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  @Input()\n  public pageViewMode: PageViewModeType;\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  @Input()\n  public spread: SpreadType;\n\n  @Input()\n  public scrollMode: ScrollModeType;\n\n  @Input()\n  public showPropertiesButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showSpreadButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showSinglePageModeButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showVerticalScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showHorizontalScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showWrappedScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showInfiniteScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showBookModeButton: ResponsiveVisibility = true;\n\n  @Output()\n  public onToolbarLoaded = new EventEmitter<HTMLElement>();\n\n  @Input()\n  public findbarVisible = false;\n\n  constructor(private elementRef: ElementRef) {}\n\n  ngAfterViewInit(): void {\n    this.onToolbarLoaded.emit(this.elementRef.nativeElement.getElementsByClassName('toolbar')[0] as HTMLElement);\n  }\n\n  public updatePageViewMode(pageViewMode: PageViewModeType): void {\n    if (pageViewMode) {\n      this.pageViewModeChange.emit(pageViewMode);\n      this.pageViewMode = pageViewMode;\n    }\n  }\n}\n","<div\n  class=\"toolbar\"\n  [class.invisible]=\"!primaryMenuVisible\"\n  [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n  [style.transformOrigin]=\"'left center'\"\n  [style.width]=\"toolbarWidth\"\n  [style.marginTop]=\"toolbarMarginTop\"\n>\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\n        [show]=\"showSidebarButton\"\n        [sidebarVisible]=\"sidebarVisible\"\n      ></pdf-toggle-sidebar>\n      <pdf-find-button\n        [showFindButton]=\"showFindButton\"\n        [textLayer]=\"textLayer\"\n        [findbarVisible]=\"findbarVisible\"\n        [hasTextLayer]=\"hasTextLayer\"\n      ></pdf-find-button>\n      <pdf-paging-area\n        [showPagingButtons]=\"showPagingButtons\"\n        [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons\"\n        [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons\"\n        [showPageNumber]=\"showPageNumber\"\n        [showPageLabel]=\"showPageLabel\"\n      ></pdf-paging-area>\n    </div>\n    <pdf-zoom-toolbar\n      id=\"toolbarViewerMiddleContainer\"\n      [showZoomButtons]=\"showZoomButtons\"\n      [showZoomDropdown]=\"showZoomDropdown\"\n      [zoomLevels]=\"zoomLevels\"\n    ></pdf-zoom-toolbar>\n    <div id=\"toolbarViewerRight\">\n      <pdf-document-properties [show]=\"showPropertiesButton\"></pdf-document-properties>\n      <pdf-no-spread\n        [scrollMode]=\"scrollMode\"\n        [show]=\"showSpreadButton\"\n      ></pdf-no-spread>\n      <pdf-odd-spread\n        [scrollMode]=\"scrollMode\"\n        [show]=\"showSpreadButton\"\n      ></pdf-odd-spread>\n      <pdf-even-spread\n        [scrollMode]=\"scrollMode\"\n        [show]=\"showSpreadButton\"\n      ></pdf-even-spread>\n      <pdf-single-page-mode\n        [show]=\"showSinglePageModeButton\"\n        [pageViewMode]=\"pageViewMode\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode\"\n      ></pdf-single-page-mode>\n      <pdf-vertical-scroll-mode\n        [show]=\"showVerticalScrollButton\"\n        [pageViewMode]=\"pageViewMode\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode\"\n      ></pdf-vertical-scroll-mode>\n      <pdf-horizontal-scroll\n        [show]=\"showHorizontalScrollButton\"\n        [pageViewMode]=\"pageViewMode\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode\"\n      ></pdf-horizontal-scroll>\n      <pdf-wrapped-scroll-mode\n        [show]=\"showWrappedScrollButton\"\n        [pageViewMode]=\"pageViewMode\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode\"\n      ></pdf-wrapped-scroll-mode>\n      <pdf-infinite-scroll\n        [show]=\"showInfiniteScrollButton\"\n        [pageViewMode]=\"pageViewMode\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode\"\n      ></pdf-infinite-scroll>\n      <pdf-book-mode\n        [show]=\"showBookModeButton\"\n        [pageViewMode]=\"pageViewMode\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode\"\n      ></pdf-book-mode>\n      <pdf-hand-tool\n        [showHandToolButton]=\"showHandToolButton\"\n        [handTool]=\"handTool\"\n      ></pdf-hand-tool>\n      <pdf-select-tool\n        [showSelectToolButton]=\"showHandToolButton\"\n        [handTool]=\"handTool\"\n      ></pdf-select-tool>\n      <pdf-rotate-page-cw [showRotateCwButton]=\"showRotateCwButton\"> </pdf-rotate-page-cw>\n      <pdf-rotate-page-ccw [showRotateCcwButton]=\"showRotateCcwButton\"> </pdf-rotate-page-ccw>\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\n      <!-- #2943 modified by ngx-extended-pdf-viewer -->\n      <pdf-move-down [showMoveDownButton]=\"showMovePageButton\"></pdf-move-down>\n      <pdf-move-up [showMoveUpButton]=\"showMovePageButton\"></pdf-move-up>\n\n      <!-- #2943 end of modification by ngx-extended-pdf-viewer -->\n\n      <pdf-editor\n        [showCommentEditor]=\"showCommentEditor\"\n        [showDrawEditor]=\"showDrawEditor\"\n        [showHighlightEditor]=\"showHighlightEditor\"\n        [showTextEditor]=\"showTextEditor\"\n        [showStampEditor]=\"showStampEditor\"\n        [showSignatureEditor]=\"showSignatureEditor\"\n      ></pdf-editor>\n      <pdf-toggle-secondary-toolbar [showSecondaryToolbarButton]=\"showSecondaryToolbarButton\"> </pdf-toggle-secondary-toolbar>\n    </div>\n  </div>\n</ng-template>\n","import { effect, Pipe, PipeTransform } from '@angular/core';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\nimport { PDFNotificationService } from './pdf-notification-service';\n\n@Pipe({\n  name: 'translate',\n})\nexport class TranslatePipe implements PipeTransform {\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  transform(key: string, fallback: string): Promise<string | undefined> {\n    return this.translate(key, fallback);\n  }\n\n  public async translate(key: string, englishText: string): Promise<string | undefined> {\n    while (!this.PDFViewerApplication) {\n      await new Promise((resolve) => setTimeout(resolve, 1));\n    }\n    return this.PDFViewerApplication?.l10n.get(key, null, englishText);\n  }\n}\n","import { isPlatformBrowser, PlatformLocation } from '@angular/common';\nimport {\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  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\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 { PdfCursorTools } from './options/pdf-cursor-tools';\nimport { assetsUrl, getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\nimport { PageViewModeType, ScrollModeChangedEvent, ScrollModeType } from './options/pdf-viewer';\nimport { IPDFViewerApplication, PDFDocumentProxy, PDFPageProxy } from './options/pdf-viewer-application';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { VerbosityLevel } from './options/verbosity-level';\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 { IOSCanvasOptimizationService } from './services/ios-canvas-optimization.service';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\n\nimport { DynamicCssComponent } from './dynamic-css/dynamic-css.component';\nimport { AnnotationEditorEvent } from './events/annotation-editor-layer-event';\nimport { AnnotationEditorLayerRenderedEvent } from './events/annotation-editor-layer-rendered-event';\nimport { AnnotationEditorEditorModeChangedEvent } from './events/annotation-editor-mode-changed-event';\nimport { AnnotationLayerRenderedEvent } from './events/annotation-layer-rendered-event';\nimport { AttachmentLoadedEvent } from './events/attachment-loaded-event';\nimport { LayersLoadedEvent } from './events/layers-loaded-event';\nimport { OutlineLoadedEvent } from './events/outline-loaded-event';\nimport { ToggleSidebarEvent } from './events/toggle-sidebar-event';\nimport { XfaLayerRenderedEvent } from './events/xfa-layer-rendered-event';\nimport { NgxFormSupport } from './ngx-form-support';\nimport { NgxHasHeight } from './ngx-has-height';\nimport { NgxKeyboardManagerService } from './ngx-keyboard-manager.service';\nimport { PdfSidebarView } from './options/pdf-sidebar-views';\nimport { SpreadType } from './options/spread-type';\nimport { ZoomType } from './options/zoom-type';\nimport { PdfCspPolicyService } from './pdf-csp-policy.service';\nimport { PDFScriptLoaderService } from './pdf-script-loader.service';\nimport { ResponsiveVisibility } from './responsive-visibility';\n\ndeclare class ResizeObserver {\n  constructor(param: () => void);\n  public disconnect();\n  public observe(div: HTMLElement);\n}\n\ninterface ElementAndPosition {\n  element: HTMLElement;\n  x: number;\n  y: number;\n  // #3074 modified by ngx-extended-pdf-viewer\n  popupElements?: Array<HTMLElement>; // Elements from aria-controls popup to insert after this element\n  // #3074 end of modification by ngx-extended-pdf-viewer\n}\n\nexport interface FormDataType {\n  [fieldName: string]: null | string | number | boolean | string[];\n}\n\nexport function isIOS(): boolean {\n  if (typeof window === 'undefined') {\n    return false;\n  }\n\n  const userAgent = navigator?.userAgent;\n  if (!userAgent) {\n    return false;\n  }\n\n  return (\n    /iPad|iPhone|iPod/.test(userAgent) ||\n    // iPad on iOS 13+ detection (reports as Mac)\n    (userAgent.includes('Mac') && 'ontouchend' in document)\n  );\n}\n\n@Component({\n  selector: 'ngx-extended-pdf-viewer',\n  templateUrl: './ngx-extended-pdf-viewer.component.html',\n  styleUrls: ['./ngx-extended-pdf-viewer.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxExtendedPdfViewerComponent implements OnInit, OnChanges, OnDestroy, NgxHasHeight {\n  private readonly formSupport = new NgxFormSupport();\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  @Output()\n  public annotationEditorEvent = new EventEmitter<AnnotationEditorEvent>();\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 forceUsingLegacyES5 = false;\n\n  public localizationInitialized: boolean = false;\n\n  private resizeObserver: ResizeObserver | undefined;\n\n  private initialAngularFormData?: FormDataType = undefined;\n\n  @Input()\n  public set formData(formData: FormDataType) {\n    this.initialAngularFormData ??= formData;\n    this.formSupport.formData = formData;\n  }\n\n  @Input()\n  public disableForms = false;\n\n  @Output()\n  public get formDataChange() {\n    return this.formSupport.formDataChange;\n  }\n\n  public _pageViewMode: PageViewModeType = 'multiple';\n\n  public baseHref: string;\n\n  /** This flag prevents trying to load a file twice if the user uploads it using the file upload dialog or via drag'n'drop */\n  private srcChangeTriggeredByUser: boolean = false;\n\n  public get pageViewMode(): PageViewModeType {\n    return this._pageViewMode;\n  }\n\n  @Input()\n  public set pageViewMode(viewMode: PageViewModeType) {\n    if (!isPlatformBrowser(this.platformId)) return;\n\n    const hasChanged = this._pageViewMode !== viewMode;\n    if (!hasChanged) return;\n\n    const mustRedraw = !this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized && (this._pageViewMode === 'book' || viewMode === 'book');\n    this._pageViewMode = viewMode;\n    this.pageViewModeChange.emit(this._pageViewMode);\n\n    const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    PDFViewerApplicationOptions?.set('pageViewMode', this.pageViewMode);\n\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication) {\n      PDFViewerApplication.pdfViewer.pageViewMode = this._pageViewMode;\n      PDFViewerApplication.findController._pageViewMode = this._pageViewMode;\n    }\n\n    this.handleViewMode(viewMode);\n\n    if (mustRedraw) {\n      this.redrawViewer(viewMode);\n    }\n  }\n\n  private handleViewMode(viewMode: PageViewModeType): void {\n    switch (viewMode) {\n      case 'infinite-scroll':\n        this.handleInfiniteScrollMode();\n        break;\n      case 'single':\n        this.handleSinglePageMode();\n        break;\n      case 'book':\n        this.handleBookMode();\n        break;\n      case 'multiple':\n        this.handleMultiplePageMode();\n        break;\n      default:\n        this.scrollMode = ScrollModeType.vertical;\n    }\n  }\n\n  private handleInfiniteScrollMode(): void {\n    if (this.scrollMode === ScrollModeType.page || this.scrollMode === ScrollModeType.horizontal) {\n      this.scrollMode = ScrollModeType.vertical;\n      this.pdfScriptLoaderService.PDFViewerApplication.eventBus.dispatch('switchscrollmode', { mode: Number(this.scrollMode) });\n    }\n    setTimeout(() => {\n      // this timeout is necessary because @Input() is called before the child components are initialized\n      // (and the DynamicCssComponent is a child component)\n      this.dynamicCSSComponent.removeScrollbarInInfiniteScrollMode(false, this.pageViewMode, this.primaryMenuVisible, this, this.logLevel);\n    });\n  }\n\n  // since pdf.js, our custom single-page-mode has been replaced by the standard scrollMode=\"page\"\n  private handleSinglePageMode(): void {\n    this.scrollMode = ScrollModeType.page;\n    this._pageViewMode = 'single';\n  }\n\n  private handleBookMode(): void {\n    this.showBorders = false;\n    if (this.scrollMode !== ScrollModeType.vertical) {\n      this.scrollMode = ScrollModeType.vertical;\n    }\n  }\n\n  private handleMultiplePageMode(): void {\n    if (this.scrollMode === ScrollModeType.page) {\n      this.scrollMode = ScrollModeType.vertical;\n    }\n    setTimeout(() => {\n      // this timeout is necessary because @Input() is called before the child components are initialized\n      // (and the DynamicCssComponent is a child component)\n      this.dynamicCSSComponent.removeScrollbarInInfiniteScrollMode(true, this.pageViewMode, this.primaryMenuVisible, this, this.logLevel);\n    });\n  }\n\n  private redrawViewer(viewMode: PageViewModeType): void {\n    if (viewMode !== 'book') {\n      const ngx = this.elementRef.nativeElement as HTMLElement;\n      const viewerContainer = ngx.querySelector('#viewerContainer') as HTMLDivElement;\n      viewerContainer.style.width = '';\n      viewerContainer.style.overflow = '';\n      viewerContainer.style.marginRight = '';\n      viewerContainer.style.marginLeft = '';\n      const viewer = ngx.querySelector('#viewer') as HTMLDivElement;\n      viewer.style.maxWidth = '';\n      viewer.style.minWidth = '';\n    }\n    this.openPDF2();\n  }\n\n  public markForCheck(): void {\n    this.cdr.markForCheck();\n  }\n\n  @Output()\n  public pageViewModeChange = new EventEmitter<PageViewModeType>();\n\n  @Output()\n  public progress = new EventEmitter<ProgressBarEvent>();\n\n  @ViewChild('pdfSecondaryToolbarComponent')\n  private readonly secondaryToolbarComponent: PdfSecondaryToolbarComponent;\n\n  @ViewChild('DynamicCssComponent')\n  private readonly dynamicCSSComponent: DynamicCssComponent;\n\n  @ViewChild('pdfsidebar')\n  private readonly 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  private _scrollMode: ScrollModeType = ScrollModeType.vertical;\n\n  public get scrollMode(): ScrollModeType {\n    return this._scrollMode;\n  }\n\n  @Input()\n  public set scrollMode(value: ScrollModeType) {\n    if (this._scrollMode !== value) {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      if (PDFViewerApplication?.pdfViewer) {\n        if (PDFViewerApplication.pdfViewer.scrollMode !== Number(this.scrollMode)) {\n          PDFViewerApplication.eventBus.dispatch('switchscrollmode', { mode: Number(this.scrollMode) });\n        }\n      }\n      this._scrollMode = value;\n      if (this._scrollMode === ScrollModeType.page) {\n        if (this.pageViewMode !== 'single') {\n          this._pageViewMode = 'single';\n          this.pageViewModeChange.emit(this.pageViewMode);\n        }\n      } else if (this.pageViewMode === 'single' || this._scrollMode === ScrollModeType.horizontal) {\n        this._pageViewMode = 'multiple';\n        this.pageViewModeChange.emit(this.pageViewMode);\n      }\n    }\n  }\n\n  @Output()\n  public scrollModeChange = new EventEmitter<ScrollModeType>();\n\n  @Input()\n  public authorization: Object | boolean | 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: ZoomType;\n\n  @Input()\n  public enablePrint = true;\n\n  public get enablePrintAutoRotate() {\n    return pdfDefaultOptions.enablePrintAutoRotate;\n  }\n  @Input()\n  public set enablePrintAutoRotate(value) {\n    pdfDefaultOptions.enablePrintAutoRotate = value;\n    if (this.pdfScriptLoaderService.PDFViewerApplication?.pdfViewer) {\n      this.pdfScriptLoaderService.PDFViewerApplication.pdfViewer.enablePrintAutoRotate = value;\n    }\n  }\n\n  /** Force reloading of the JavaScript code. Useful for testing and micro-frontends */\n  @Input()\n  public forceFullReloadOfJavaScriptCode = false;\n\n  @Input()\n  public showTextEditor: ResponsiveVisibility = 'xxl';\n\n  @Input()\n  public showStampEditor: ResponsiveVisibility = 'xxl';\n\n  @Input()\n  public showCommentEditor: ResponsiveVisibility = pdfDefaultOptions.enableComment ? 'xxl' : false;\n\n  @Input()\n  public showDrawEditor: ResponsiveVisibility = 'xxl';\n\n  @Input()\n  public showHighlightEditor: ResponsiveVisibility = 'xxl';\n\n  @Input()\n  public showSignatureEditor: ResponsiveVisibility = 'xxl';\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  /** Use the minified (minifiedJSLibraries=\"true\", which is the default) or the user-readable pdf.js library (minifiedJSLibraries=\"false\") */\n  public get minifiedJSLibraries() {\n    return pdfDefaultOptions._internalFilenameSuffix === '.min';\n  }\n\n  @Input()\n  public set minifiedJSLibraries(value) {\n    pdfDefaultOptions._internalFilenameSuffix = value ? '.min' : '';\n  }\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  @Output()\n  public annotationLayerRendered = new EventEmitter<AnnotationLayerRenderedEvent>();\n\n  @Output()\n  public annotationEditorLayerRendered = new EventEmitter<AnnotationEditorLayerRenderedEvent>();\n\n  @Output()\n  public xfaLayerRendered = new EventEmitter<XfaLayerRenderedEvent>();\n\n  @Output()\n  public outlineLoaded = new EventEmitter<OutlineLoadedEvent>();\n\n  @Output()\n  public attachmentsloaded = new EventEmitter<AttachmentLoadedEvent>();\n\n  @Output()\n  public layersloaded = new EventEmitter<LayersLoadedEvent>();\n\n  public hasSignature: boolean;\n\n  @Input()\n  public set src(url: string | ArrayBuffer | Blob | Uint8Array | URL | { range: any } | undefined) {\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      (async () => {\n        this.src = await this.convertBlobToUint8Array(url);\n        if (this.service.ngxExtendedPdfViewerInitialized) {\n          if (this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized) {\n            this.openPDF();\n          } else {\n            (async () => this.openPDF2())();\n          }\n          // else openPDF is called later, so we do nothing to prevent loading the PDF file twice\n        }\n      })();\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  private async convertBlobToUint8Array(blob): Promise<Uint8Array> {\n    // first try the algorithm for modern browsers and node.js\n    if (blob.arrayBuffer) {\n      const arrayBuffer = await blob.arrayBuffer();\n      return new Uint8Array(arrayBuffer);\n    }\n\n    // then try the old-fashioned way\n    return new Promise<Uint8Array>((resolve, reject) => {\n      const reader = new FileReader();\n      reader.onloadend = () => {\n        if (reader.result) {\n          resolve(new Uint8Array(reader.result as ArrayBuffer));\n        } else {\n          reject(new Error('Error converting Blob to Uint8Array'));\n        }\n      };\n      reader.onerror = () => {\n        reject(new Error('FileReader error'));\n      };\n      reader.readAsArrayBuffer(blob);\n    });\n  }\n\n  @Input()\n  public set base64Src(base64: string | null | undefined) {\n    if (base64) {\n      if (typeof window === 'undefined') {\n        // server-side rendering\n        return;\n      }\n      const binary_string = 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. checkHeight() fixes this.\n   */\n  public autoHeight = false;\n\n  @Input()\n  public minHeight: string | undefined = undefined;\n\n  private _height: string | undefined = '100%';\n\n  @Input()\n  public set height(h: string | undefined) {\n    this.minHeight = undefined;\n    this.autoHeight = false;\n    if (h) {\n      if (h === 'auto') {\n        this.autoHeight = true;\n        this._height = undefined;\n      } else {\n        this._height = h;\n      }\n    } else {\n      this.height = '100%';\n    }\n    setTimeout(() => {\n      // this timeout is necessary because @Input() is called before the child components are initialized\n      // (and the DynamicCssComponent is a child component)\n      this.dynamicCSSComponent.checkHeight(this, this.logLevel);\n    });\n  }\n\n  public get height() {\n    return this._height;\n  }\n\n  @Input()\n  public backgroundColor = undefined;\n\n  @Input()\n  public pdfBackgroundColor = undefined;\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  public hasTextLayer = true;\n\n  /** Allows the user to put the viewer's svg images into an arbitrary folder */\n  @Input()\n  public imageResourcesPath = assetsUrl(pdfDefaultOptions.assetsFolder) + '/images/';\n\n  /** Allows the user to put their locale folder into an arbitrary folder */\n  @Input()\n  public localeFolderPath = assetsUrl(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 = typeof window === 'undefined' ? 'en' : navigator.language;\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  @Input()\n  public replaceBrowserPrint = true;\n\n  private readonly originalPrint = typeof window !== 'undefined' ? window.print : undefined;\n\n  /** Store the original color-scheme value to restore it on destroy */\n  private originalColorScheme: string | null = null;\n\n  public _showSidebarButton: ResponsiveVisibility = true;\n\n  @Input()\n  public useInlineScripts = 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: ResponsiveVisibility) {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      this._showSidebarButton = false;\n      return;\n    }\n    this._showSidebarButton = show;\n    if (this._showSidebarButton) {\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      this.findbarLeft = (68 * factor).toString() + 'px';\n      return;\n    }\n    this.findbarLeft = '0px';\n  }\n\n  private _sidebarVisible: boolean | undefined = undefined;\n  public get sidebarVisible(): boolean | undefined {\n    return this._sidebarVisible;\n  }\n  @Input()\n  public set sidebarVisible(value: boolean | undefined) {\n    if (value !== this._sidebarVisible) {\n      this.sidebarVisibleChange.emit(value);\n    }\n    this._sidebarVisible = value;\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication?.pdfSidebar) {\n      if (this.sidebarVisible) {\n        PDFViewerApplication.pdfSidebar.open();\n        const view = Number(this.activeSidebarView);\n        if (view === 1 || view === 2 || view === 3 || view === 4) {\n          PDFViewerApplication.pdfSidebar.switchView(view, true);\n        } else {\n          console.error('[activeSidebarView] must be an integer value between 1 and 4');\n        }\n      } else {\n        PDFViewerApplication.pdfSidebar.close();\n      }\n    }\n  }\n\n  @Output()\n  public sidebarVisibleChange = new EventEmitter<boolean>();\n\n  @Input()\n  public activeSidebarView: PdfSidebarView = PdfSidebarView.OUTLINE;\n\n  @Output()\n  public activeSidebarViewChange = new EventEmitter<PdfSidebarView>();\n\n  @Input()\n  public findbarVisible = false;\n\n  @Output()\n  public findbarVisibleChange = new EventEmitter<boolean>();\n\n  @Input()\n  public propertiesDialogVisible = false;\n\n  @Output()\n  public propertiesDialogVisibleChange = new EventEmitter<boolean>();\n\n  @Input()\n  public showFindButton: ResponsiveVisibility | undefined = undefined;\n\n  @Input()\n  public showFindHighlightAll = true;\n\n  @Input()\n  public showFindMatchCase = true;\n\n  @Input()\n  public showFindMultiple: boolean = true;\n\n  @Input()\n  public showFindRegexp: boolean = false;\n\n  @Input()\n  public showFindEntireWord = true;\n\n  @Input()\n  public showFindMatchDiacritics = true;\n\n  @Input()\n  public showFindResultsCount = true;\n\n  @Input()\n  public showFindMessages = true;\n\n  @Input()\n  public showMovePageButton: ResponsiveVisibility = false;\n\n  @Input()\n  public showPagingButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showFirstAndLastPageButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showPreviousAndNextPageButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showPageNumber: ResponsiveVisibility = true;\n\n  @Input()\n  public showPageLabel: ResponsiveVisibility = true;\n\n  @Input()\n  public showZoomButtons: ResponsiveVisibility = true;\n\n  @Input()\n  public showZoomDropdown: ResponsiveVisibility = true;\n\n  @Input()\n  public showPresentationModeButton: ResponsiveVisibility = false;\n\n  @Input()\n  public showOpenFileButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showPrintButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showDownloadButton: ResponsiveVisibility = true;\n\n  @Input()\n  public theme: 'dark' | 'light' | 'custom' | string = 'light';\n\n  @Input()\n  public showToolbar = true;\n\n  @Input()\n  public showSecondaryToolbarButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showSinglePageModeButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showVerticalScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showHorizontalScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showWrappedScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showInfiniteScrollButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showBookModeButton: ResponsiveVisibility = true;\n\n  @Input()\n  public set showRotateButton(visibility: ResponsiveVisibility) {\n    this.showRotateCwButton = visibility;\n    this.showRotateCcwButton = visibility;\n  }\n\n  @Input()\n  public showRotateCwButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showRotateCcwButton: ResponsiveVisibility = true;\n\n  private _handTool = !isIOS();\n\n  @Input()\n  public set handTool(handTool: boolean) {\n    if (isIOS() && handTool) {\n      console.log(\n        \"On iOS, the handtool doesn't work reliably. Plus, you don't need it because touch gestures allow you to distinguish easily between swiping and selecting text. Therefore, the library ignores your setting.\",\n      );\n      return;\n    }\n    this._handTool = handTool;\n  }\n\n  public get handTool(): boolean {\n    return this._handTool;\n  }\n\n  @Output()\n  public handToolChange = new EventEmitter<boolean>();\n\n  @Input()\n  public showHandToolButton: ResponsiveVisibility = false;\n\n  @Input()\n  public showSpreadButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showPropertiesButton: ResponsiveVisibility = true;\n\n  @Input()\n  public showBorders = true;\n\n  @Input()\n  public spread: SpreadType;\n\n  @Input()\n  public set showScrollingButtons(show: ResponsiveVisibility) {\n    this.showVerticalScrollButton = show;\n    this.showHorizontalScrollButton = show;\n    this.showWrappedScrollButton = show;\n    this.showInfiniteScrollButton = show;\n    this.showBookModeButton = show;\n    this.showSinglePageModeButton = show;\n  }\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(newPageNumber: number | string | undefined) {\n    if (newPageNumber) {\n      // silently cope with strings\n      this._page = Number(newPageNumber);\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 annotationEditorModeChanged = new EventEmitter<AnnotationEditorEditorModeChangedEvent>();\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: ZoomType = undefined;\n\n  @Output()\n  public zoomChange = new EventEmitter<ZoomType>();\n\n  private _zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 1, 1.25, 1.5, 2, 3, 4];\n\n  public get zoomLevels() {\n    if (this.maxZoom && this.maxZoom === this.minZoom) {\n      return [this.maxZoom];\n    }\n    return this._zoomLevels;\n  }\n\n  @Input()\n  public set zoomLevels(value) {\n    this._zoomLevels = value;\n  }\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  public _mobileFriendlyZoom: string = '100%';\n\n  public mobileFriendlyZoomScale = 1;\n\n  public toolbarMarginTop = '0px';\n\n  public toolbarWidth = '100%';\n\n  private toolbar: HTMLElement | undefined = undefined;\n\n  public onToolbarLoaded(toolbarElement: HTMLElement): void {\n    this.toolbar = toolbarElement;\n  }\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  private initializationPromise: (() => Promise<void>) | null = null;\n  private checkRootElementTimeout: any;\n  private destroyInitialization = false;\n\n  public get mobileFriendlyZoom() {\n    return this._mobileFriendlyZoom;\n  }\n\n  public get pdfJsVersion(): string {\n    return getVersionSuffix(pdfDefaultOptions.assetsFolder);\n  }\n\n  public get majorMinorPdfJsVersion(): string {\n    const fullVersion = this.pdfJsVersion;\n    const pos = fullVersion.lastIndexOf('.');\n    return fullVersion.substring(0, pos).replace('.', '-');\n  }\n\n  public get enableSignatureEditor(): boolean {\n    return pdfDefaultOptions.enableSignatureEditor;\n  }\n\n  public get enablePageReordering(): boolean {\n    return pdfDefaultOptions.enablePageReordering;\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    this.calcViewerPositionTop();\n  }\n\n  public serverSideRendering = true;\n\n  /**\n   * Checks if the code is running in a browser environment.\n   */\n  private isBrowser(): boolean {\n    return typeof window !== 'undefined' && typeof document !== 'undefined';\n  }\n\n  public calcViewerPositionTop(): void {\n    if (!this.isBrowser()) {\n      return;\n    }\n    if (this.toolbar === undefined) {\n      this.sidebarPositionTop = '0';\n      return;\n    }\n    const top = this.toolbar.getBoundingClientRect().height;\n    const previous = this.viewerPositionTop;\n    if (top < 33) {\n      this.viewerPositionTop = '33px';\n    } else {\n      this.viewerPositionTop = top + 'px';\n    }\n    if (previous !== this.viewerPositionTop) {\n      this.cdr.markForCheck();\n    }\n\n    const factor = top / 33;\n\n    if (this.primaryMenuVisible) {\n      this.sidebarPositionTop = (33 + 33 * (factor - 1)).toString() + 'px';\n    } else {\n      this.sidebarPositionTop = '0';\n    }\n    this.secondaryToolbarTop = (33 + 38 * (factor - 1)).toString() + 'px';\n    this.findbarTop = (33 + 38 * (factor - 1)).toString() + 'px';\n\n    const findButton = document.getElementById('primaryViewFind');\n    if (findButton) {\n      const containerPositionLeft = this.toolbar.getBoundingClientRect().left;\n      const findButtonPosition = findButton.getBoundingClientRect();\n      const left = Math.max(0, 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 = '0';\n    }\n  }\n\n  constructor(\n    @Inject(PLATFORM_ID) private readonly platformId,\n    private readonly notificationService: PDFNotificationService,\n    private readonly elementRef: ElementRef,\n    private readonly platformLocation: PlatformLocation,\n    public cdr: ChangeDetectorRef,\n    public service: NgxExtendedPdfViewerService,\n    private readonly renderer: Renderer2,\n    private readonly pdfScriptLoaderService: PDFScriptLoaderService,\n    private readonly keyboardManager: NgxKeyboardManagerService,\n    private readonly cspPolicyService: PdfCspPolicyService,\n    private readonly iosCanvasService: IOSCanvasOptimizationService,\n    private readonly ngZone: NgZone,\n  ) {\n    this.baseHref = this.platformLocation.getBaseHrefFromDOM();\n    if (isPlatformBrowser(this.platformId)) {\n      this.serverSideRendering = false;\n      this.toolbarWidth = String(document.body.clientWidth);\n    }\n  }\n\n  private reportSourceChanges(change: { sourcefile: string }): void {\n    this._src = change.sourcefile;\n    this.srcChangeTriggeredByUser = true;\n    this.srcChange.emit(change.sourcefile);\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (this.filenameForDownload) {\n      PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n    } else {\n      PDFViewerApplication.appConfig.filenameForDownload = this.guessFilenameFromUrl(this._src);\n    }\n  }\n\n  private handleStoredValuesAvailable(event: any): void {\n    // Only apply stored values if developer hasn't explicitly set zoom/page\n\n    // Apply stored zoom if zoom is not explicitly set by developer\n    if (this.zoom === undefined && event.storedZoom !== undefined) {\n      this.zoom = event.storedZoom as ZoomType;\n    }\n\n    // Apply stored page if page is not explicitly set by developer\n    if (this._page === undefined && event.storedPage !== undefined) {\n      this._page = event.storedPage;\n    }\n  }\n\n  public async ngOnInit() {\n    this.hideToolbarIfItIsEmpty();\n    if (isPlatformBrowser(this.platformId)) {\n      this.ngZone.runOutsideAngular(() => {\n        this.initializationPromise = this.initialize;\n        this.initializationPromise();\n      });\n    }\n  }\n\n  private async initialize(): Promise<void> {\n    try {\n      await this.waitForRootElement();\n\n      if (this.destroyInitialization) return;\n\n      if (isPlatformBrowser(this.platformId)) {\n        this.addTranslationsUnlessProvidedByTheUser();\n        await this.waitUntilOldComponentIsGone();\n        if (this.destroyInitialization) return;\n\n        await this.pdfScriptLoaderService.ensurePdfJsHasBeenLoaded(this.useInlineScripts, this.forceUsingLegacyES5, this.forceFullReloadOfJavaScriptCode);\n        if (this.destroyInitialization) return;\n\n        if (this.formSupport) {\n          this.formSupport.registerFormSupportWithPdfjs(this.pdfScriptLoaderService.PDFViewerApplication);\n          this.keyboardManager.registerKeyboardListener(this.pdfScriptLoaderService.PDFViewerApplication);\n          this.formSupport.ngZone = this.ngZone;\n          this.formSupport.cdr = this.cdr;\n        }\n        this.pdfScriptLoaderService.PDFViewerApplication.cspPolicyService = this.cspPolicyService;\n\n        // Initialize iOS canvas optimization service with PDFViewerApplication\n        this.iosCanvasService.initialize(this.pdfScriptLoaderService.PDFViewerApplication);\n\n        this.ngZone.runOutsideAngular(() => this.doInitPDFViewer());\n      }\n    } catch (error) {\n      console.error('Initialization failed:', error);\n    }\n  }\n\n  private async waitForRootElement(): Promise<void> {\n    return new Promise<void>((resolve, reject) => {\n      const checkRootElement = () => {\n        if (this.destroyInitialization) {\n          reject(new Error('Component destroyed'));\n          return;\n        }\n\n        if (this.root?.nativeElement?.offsetParent) {\n          resolve();\n        } else {\n          this.checkRootElementTimeout = setTimeout(checkRootElement, 50);\n        }\n      };\n      checkRootElement();\n    });\n  }\n\n  private async waitUntilOldComponentIsGone(): Promise<void> {\n    return new Promise<void>((resolve) => {\n      const interval = setInterval(() => {\n        if (!this.service.ngxExtendedPdfViewerInitialized) {\n          clearInterval(interval);\n          resolve();\n        }\n      }, 10);\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 topRightGreaterThanBottomLeftComparator = (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      const sorted = [...elements].sort(topRightGreaterThanBottomLeftComparator);\n\n      // #3074 modified by ngx-extended-pdf-viewer\n      // Assign tab indexes, inserting popup elements immediately after their trigger buttons\n      let tabIndex = this.startTabindex;\n      for (let i = 0; i < sorted.length; i++) {\n        sorted[i].element.tabIndex = tabIndex++;\n\n        // If this element controls a popup, assign tab indexes to popup elements next\n        if (sorted[i].popupElements && sorted[i].popupElements!.length > 0) {\n          for (const popupElement of sorted[i].popupElements!) {\n            popupElement.tabIndex = tabIndex++;\n          }\n        }\n      }\n      // #3074 end of modification by ngx-extended-pdf-viewer\n    }\n  }\n\n  private showElementsRecursively(root: Element): void {\n    const classesToRemove = [\n      'hidden',\n      'invisible',\n      'hiddenXXLView',\n      'hiddenXLView',\n      'hiddenLargeView',\n      'hiddenMediumView',\n      'hiddenSmallView',\n      'hiddenTinyView',\n      'visibleXXLView',\n      'visibleXLView',\n      'visibleLargeView',\n      'visibleMediumView',\n      'visibleSmallView',\n      'visibleTinyView',\n    ];\n\n    root.classList.remove(...classesToRemove);\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    // #3074 modified by ngx-extended-pdf-viewer\n    // Skip elements inside editor params toolbars - they'll be collected via aria-controls\n    if (copy.classList.contains('editorParamsToolbar')) {\n      return elements;\n    }\n    // #3074 end of modification by ngx-extended-pdf-viewer\n\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\n      // #3074 modified by ngx-extended-pdf-viewer\n      // If this element controls a popup (aria-controls), collect popup elements\n      const ariaControls = (original as HTMLElement).getAttribute('aria-controls');\n      if (ariaControls) {\n        const popupElements = this.collectPopupElements(ariaControls);\n        if (popupElements.length > 0) {\n          elementAndPos.popupElements = popupElements;\n        }\n      }\n      // #3074 end of modification by ngx-extended-pdf-viewer\n\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  // #3074 modified by ngx-extended-pdf-viewer\n  /**\n   * Collect focusable elements from a popup identified by aria-controls ID\n   * These elements should appear in tab order immediately after the trigger button\n   */\n  private collectPopupElements(ariaControls: string): Array<HTMLElement> {\n    const popup = this.root.nativeElement.querySelector(`#${ariaControls}`);\n    if (!popup) {\n      return [];\n    }\n\n    const selector = 'button:not([tabindex=\"-1\"]), a:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"])';\n    const focusableElements = popup.querySelectorAll(selector);\n    const elementsArray = Array.from(focusableElements) as Array<HTMLElement>;\n    return elementsArray;\n  }\n  // #3074 end of modification by ngx-extended-pdf-viewer\n\n  private readonly afterPrintListener = () => {\n    this.afterPrint.emit();\n  };\n\n  private readonly beforePrintListener = () => {\n    this.beforePrint.emit();\n  };\n\n  private guessFilenameFromUrl(src: unknown): string | undefined {\n    if (src && typeof src === 'string') {\n      const slash = src.lastIndexOf('/');\n      if (slash > 0) {\n        return src.substring(slash + 1);\n      } else {\n        return src;\n      }\n    }\n    return undefined;\n  }\n\n  private doInitPDFViewer() {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n\n    if (this.service.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    this.overrideDefaultSettings();\n    const onLoaded = () => {\n      if (!this.pdfScriptLoaderService.PDFViewerApplication.eventBus) {\n        console.error(\"Eventbus is null? Let's try again.\");\n        setTimeout(() => {\n          onLoaded();\n        }, 10);\n      } else {\n        this.pdfScriptLoaderService.PDFViewerApplication.eventBus.on('sourcechanged', this.reportSourceChanges.bind(this));\n        this.pdfScriptLoaderService.PDFViewerApplication.eventBus.on('afterprint', this.afterPrintListener);\n        this.pdfScriptLoaderService.PDFViewerApplication.eventBus.on('beforeprint', this.beforePrintListener);\n        this.localizationInitialized = true;\n        if (!this.pdfScriptLoaderService.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          if (this.replaceBrowserPrint) {\n            this.doReplaceBrowserPrint(this.replaceBrowserPrint);\n          }\n        }\n      }\n    };\n    document.addEventListener('webviewerinitialized', onLoaded, { once: true });\n\n    this.activateTextlayerIfNecessary(null);\n\n    setTimeout(() => {\n      if (!this.pdfScriptLoaderService.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.initResizeObserver();\n        this.onResize();\n        this.hideToolbarIfItIsEmpty();\n        this.dummyComponents.addMissingStandardWidgets();\n        if (this.pdfScriptLoaderService.PDFViewerApplicationOptions) {\n          const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n          (globalThis as any).PDFViewerApplicationOptions = PDFViewerApplicationOptions;\n        }\n\n        this.pdfScriptLoaderService.webViewerLoad(this.cspPolicyService);\n\n        const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n        PDFViewerApplication.appConfig.defaultUrl = ''; // IE bugfix\n        const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n\n        PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop);\n        PDFViewerApplicationOptions.set('localeProperties', { lang: this.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('pdfBackgroundColor', this.pdfBackgroundColor);\n        if (this.theme === 'dark') {\n          PDFViewerApplicationOptions.set('viewerCssTheme', 2);\n        } else if (this.theme === 'light') {\n          PDFViewerApplicationOptions.set('viewerCssTheme', 1);\n        }\n\n        PDFViewerApplication.isViewerEmbedded = true;\n        if (PDFViewerApplication.printKeyDownListener) {\n          window.addEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\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            }\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  private addTranslationsUnlessProvidedByTheUser() {\n    const link = this.renderer.createElement('link');\n    link.rel = 'resource';\n    link.type = 'application/l10n';\n    link.href = this.localeFolderPath + '/locale.json';\n\n    link.setAttribute('origin', 'ngx-extended-pdf-viewer');\n    this.renderer.appendChild(this.elementRef.nativeElement, link);\n  }\n\n  private hideToolbarIfItIsEmpty() {\n    this.primaryMenuVisible = this.showToolbar;\n    if (!this.showSecondaryToolbarButton || this.service.secondaryMenuIsEmpty) {\n      if (!this.isPrimaryMenuVisible()) {\n        this.primaryMenuVisible = false;\n      }\n    }\n  }\n\n  /** Notifies every widget that implements onLibraryInit() that the PDF viewer objects are available */\n  private afterLibraryInit() {\n    // Store the original color-scheme value before PDF.js might change it\n    if (typeof window !== 'undefined' && typeof document !== 'undefined' && this.originalColorScheme === null) {\n      const docStyle = document.documentElement.style;\n      this.originalColorScheme = docStyle.getPropertyValue('color-scheme') || '';\n    }\n\n    queueMicrotask(() => this.notificationService.onPDFJSInitSignal.set(this.pdfScriptLoaderService.PDFViewerApplication));\n  }\n\n  public onSpreadChange(newSpread: 'off' | 'even' | 'odd'): void {\n    this.spreadChange.emit(newSpread);\n  }\n\n  private readonly toggleVisibility = (elementId: string, cssClass = 'invisible') => {\n    const element = document.getElementById(elementId) as HTMLElement;\n    element?.classList.remove(cssClass);\n  };\n\n  private activateTextlayerIfNecessary(options: any): void {\n    const setTextLayerMode = (mode: number) => {\n      options?.set('textLayerMode', mode);\n      this.pdfScriptLoaderService.PDFViewerApplication.pdfViewer?.setTextLayerMode(mode);\n    };\n\n    if (this.textLayer === undefined) {\n      if (!this.handTool) {\n        setTextLayerMode(pdfDefaultOptions.textLayerMode);\n        this.textLayer = true;\n        if (this.showFindButton === undefined) {\n          this.showFindButton = true;\n          setTimeout(() => {\n            this.toggleVisibility('viewFind');\n            this.toggleVisibility('findbar');\n          });\n        }\n      } else {\n        setTextLayerMode(this.showHandToolButton ? pdfDefaultOptions.textLayerMode : 0);\n\n        if (!this.showHandToolButton) {\n          if (this.showFindButton || this.showFindButton === undefined) {\n            queueMicrotask(() => {\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      setTextLayerMode(pdfDefaultOptions.textLayerMode);\n      this.textLayer = true;\n      if (this.showFindButton === undefined) {\n        this.showFindButton = true;\n        setTimeout(() => {\n          this.toggleVisibility('viewFind');\n          this.toggleVisibility('findbar');\n        });\n      }\n    }\n  }\n\n  private async overrideDefaultSettings() {\n    if (typeof window === 'undefined') {\n      return; // server side rendering\n    }\n    const options = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    // tslint:disable-next-line:forin\n    const optionsToIgnore = [\n      'needsES5',\n      'rangeChunkSize',\n      '_internalFilenameSuffix',\n      'assetsFolder',\n      'doubleTapZoomFactor',\n      'doubleTapZoomsInHandMode',\n      'doubleTapZoomsInTextSelectionMode',\n      'doubleTapResetsZoomOnSecondDoubleTap',\n    ];\n    for (const key in pdfDefaultOptions) {\n      if (!optionsToIgnore.includes(key)) {\n        const option = pdfDefaultOptions[key];\n        if (key !== 'findController' && typeof option === 'function') {\n          options.set(key, option());\n        } else {\n          options.set(key, pdfDefaultOptions[key]);\n        }\n      }\n    }\n    options.set('disablePreferences', true);\n    await this.setZoom();\n\n    this.keyboardManager.ignoreKeyboard = this.ignoreKeyboard;\n    this.keyboardManager.ignoreKeys = this.ignoreKeys;\n    this.keyboardManager.acceptKeys = this.acceptKeys;\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 = this.pdfScriptLoaderService.PDFViewerApplication;\n\n    if (sidebarVisible !== undefined) {\n      PDFViewerApplication.sidebarViewOnLoad = sidebarVisible ? 1 : 0;\n      if (PDFViewerApplication.appConfig) {\n        PDFViewerApplication.appConfig.sidebarViewOnLoad = sidebarVisible ? this.activeSidebarView : PdfSidebarView.NONE;\n      }\n      options.set('sidebarViewOnLoad', this.sidebarVisible ? this.activeSidebarView : 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    const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    PDFViewerApplicationOptions.set('localeProperties', { lang: this.language });\n  }\n\n  private async openPDF(): Promise<void> {\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    PDFViewerApplication.serviceWorkerOptions.showUnverifiedSignatures = this.showUnverifiedSignatures;\n    PDFViewerApplication.enablePrint = this.enablePrint;\n    if (this.filenameForDownload) {\n      PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n    } else {\n      PDFViewerApplication.appConfig.filenameForDownload = this.guessFilenameFromUrl(this._src);\n    }\n    this.service.ngxExtendedPdfViewerInitialized = true;\n    this.registerEventListeners(PDFViewerApplication);\n    this.selectCursorTool();\n    if (!this.listenToURL) {\n      PDFViewerApplication.pdfLinkService.setHash = undefined;\n    }\n\n    if (this._src) {\n      this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized = false;\n\n      setTimeout(async () => this.dynamicCSSComponent.checkHeight(this, this.logLevel), 100);\n      // open a file in the viewer\n      if (!!this._src) {\n        let workerSrc: string | (() => string) = pdfDefaultOptions.workerSrc;\n        if (typeof workerSrc === 'function') {\n          workerSrc = workerSrc();\n        }\n        const options: any = {\n          password: this.password,\n          verbosity: this.logLevel,\n          workerSrc,\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\n          if (typeof this.authorization != 'boolean') {\n            if (!options.httpHeaders) options.httpHeaders = {};\n\n            options.httpHeaders.Authorization = this.authorization;\n          }\n        }\n        options.baseHref = this.baseHref;\n        PDFViewerApplication.onError = (error: Error) => this.pdfLoadingFailed.emit(error);\n        if (typeof this._src === 'string') {\n          options.url = this._src;\n        } else if (this._src instanceof ArrayBuffer) {\n          options.data = this._src;\n        } else if (this._src instanceof Uint8Array) {\n          options.data = this._src;\n        }\n        options.rangeChunkSize = pdfDefaultOptions.rangeChunkSize;\n        options.cspPolicyService = this.cspPolicyService;\n        PDFViewerApplication.findBar?.close();\n        PDFViewerApplication.secondaryToolbar?.close();\n        PDFViewerApplication.eventBus.dispatch('annotationeditormodechanged', { mode: 0 });\n\n        await PDFViewerApplication.open(options);\n        this.pdfLoadingStarts.emit({});\n        setTimeout(async () => this.setZoom());\n      }\n      setTimeout(() => {\n        if (!this.pdfScriptLoaderService.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 registerEventListeners(PDFViewerApplication: IPDFViewerApplication) {\n    PDFViewerApplication.eventBus.on('annotation-editor-event', (x: AnnotationEditorEvent) => {\n      queueMicrotask(() => {\n        this.annotationEditorEvent.emit(x);\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('toggleSidebar', (x: ToggleSidebarEvent) => {\n      queueMicrotask(() => {\n        this.sidebarVisible = x.visible;\n        this.sidebarVisibleChange.emit(x.visible);\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('textlayerrendered', (x: TextLayerRenderedEvent) => {\n      queueMicrotask(() => this.textLayerRendered.emit(x));\n    });\n\n    PDFViewerApplication.eventBus.on('annotationeditormodechanged', (x: AnnotationEditorEditorModeChangedEvent) => {\n      // we're using a timeout here to make sure the editor is already visible\n      // when the event is caught. Pdf.js fires it a bit early.\n      setTimeout(() => this.annotationEditorModeChanged.emit(x));\n    });\n\n    PDFViewerApplication.eventBus.on('scrollmodechanged', (x: ScrollModeChangedEvent) => {\n      queueMicrotask(() => {\n        this._scrollMode = x.mode;\n        this.scrollModeChange.emit(x.mode);\n        if (x.mode === ScrollModeType.page) {\n          if (this.pageViewMode !== 'single') {\n            this.pageViewModeChange.emit('single');\n            this._pageViewMode = 'single';\n          }\n        }\n      });\n    });\n    // #2673 Listen for pageViewMode changes to restore height when leaving infinite-scroll\n    PDFViewerApplication.eventBus.on('pageviewmodechanged', (x: any) => {\n      if (x.mode === 'single') {\n        // Restore height after switching away from infinite-scroll\n        setTimeout(() => {\n          this.dynamicCSSComponent.removeScrollbarInInfiniteScrollMode(true, this.pageViewMode, this.primaryMenuVisible, this, this.logLevel);\n        });\n      }\n    });\n    // #2673 end of modification\n    PDFViewerApplication.eventBus.on('progress', (x: ProgressBarEvent) => {\n      queueMicrotask(() => this.progress.emit(x));\n    });\n    PDFViewerApplication.eventBus.on('findbarclose', () => {\n      queueMicrotask(() => {\n        this.findbarVisible = false;\n        this.findbarVisibleChange.emit(false);\n        this.cdr.markForCheck();\n      });\n    });\n    PDFViewerApplication.eventBus.on('findbaropen', () => {\n      queueMicrotask(() => {\n        this.findbarVisible = true;\n        this.findbarVisibleChange.emit(true);\n        this.cdr.markForCheck();\n      });\n    });\n    PDFViewerApplication.eventBus.on('propertiesdialogclose', () => {\n      this.propertiesDialogVisible = false;\n      queueMicrotask(() => this.propertiesDialogVisibleChange.emit(false));\n    });\n    PDFViewerApplication.eventBus.on('propertiesdialogopen', () => {\n      this.propertiesDialogVisible = true;\n      queueMicrotask(() => this.propertiesDialogVisibleChange.emit(true));\n    });\n\n    PDFViewerApplication.eventBus.on('pagesloaded', (x: PagesLoadedEvent) => {\n      queueMicrotask(() => this.pagesLoaded.emit(x));\n      this.dynamicCSSComponent.removeScrollbarInInfiniteScrollMode(false, this.pageViewMode, this.primaryMenuVisible, this, this.logLevel);\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.pdfScriptLoaderService.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      this.setZoom();\n    });\n    PDFViewerApplication.eventBus.on('pagerendered', (x: PageRenderedEvent) => {\n      queueMicrotask(() => {\n        this.pageRendered.emit(x);\n        this.dynamicCSSComponent.removeScrollbarInInfiniteScrollMode(false, this.pageViewMode, this.primaryMenuVisible, this, this.logLevel);\n      });\n    });\n    PDFViewerApplication.eventBus.on('pagerender', (x: PageRenderEvent) => {\n      queueMicrotask(() => {\n        this.pageRender.emit(x);\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('download', (x: PdfDownloadedEvent) => {\n      queueMicrotask(() => {\n        this.pdfDownloaded.emit(x);\n      });\n    });\n    PDFViewerApplication.eventBus.on('scalechanging', (x: ScaleChangingEvent) => {\n      // #3060 modified by ngx-extended-pdf-viewer - diagnostic logging for iOS scale bug\n      if (x.scale < 0.15 || (x.previousScale && x.previousScale < 0.15)) {\n        console.log(\n          `[#3060 DEBUG] scalechanging event: scale=${x.scale}, previousScale=${x.previousScale}, presetValue=${x.presetValue}, this.zoom=${this.zoom}, source=${x.source?.constructor?.name}`,\n        );\n      }\n      // #3060 end of modification by ngx-extended-pdf-viewer\n      setTimeout(() => {\n        this.currentZoomFactor.emit(x.scale);\n        this.cdr.markForCheck();\n      });\n\n      if (x.presetValue !== 'auto' && x.presetValue !== 'page-fit' && x.presetValue !== 'page-actual' && x.presetValue !== 'page-width') {\n        // ignore rounding differences\n        if (Math.abs(x.previousScale - x.scale) > 0.000001) {\n          this.zoom = x.scale * 100;\n          this.zoomChange.emit(x.scale * 100);\n        }\n      } else if (x.previousPresetValue !== x.presetValue) {\n        // called when the user selects one of the text values of the zoom select dropdown\n        this.zoomChange.emit(x.presetValue);\n      }\n    });\n\n    PDFViewerApplication.eventBus.on('rotationchanging', (x: PagesRotationEvent) => {\n      queueMicrotask(() => {\n        this.rotationChange.emit(x.pagesRotation);\n      });\n    });\n    PDFViewerApplication.eventBus.on('fileinputchange', (x: FileInputChanged) => {\n      queueMicrotask(() => {\n        if (x.fileInput.files && x.fileInput.files.length >= 1) {\n          // drag and drop\n          this.srcChangeTriggeredByUser = true;\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      queueMicrotask(() => {\n        this.handTool = x.tool === PdfCursorTools.HAND;\n        this.handToolChange.emit(x.tool === PdfCursorTools.HAND);\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('sidebarviewchanged', (x: SidebarviewChange) => {\n      queueMicrotask(() => {\n        this.sidebarVisibleChange.emit(x.view > 0);\n        if (x.view > 0) {\n          this.activeSidebarViewChange.emit(x.view);\n        }\n        if (this.sidebarComponent) {\n          this.sidebarComponent.showToolbarWhenNecessary();\n        }\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('storedvaluesavailable', (event) => {\n      queueMicrotask(() => {\n        this.handleStoredValuesAvailable(event);\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('documentloaded', (pdfLoadedEvent: PdfDocumentLoadedEvent) => {\n      queueMicrotask(async () => {\n        const pages = pdfLoadedEvent.source.pagesCount;\n        this.pageLabel = undefined;\n        if (this.page && this.page >= pages) {\n          this.page = pages;\n        }\n        this.scrollSignatureWarningIntoView(pdfLoadedEvent.source.pdfDocument);\n        this.pdfLoaded.emit({ pagesCount: pdfLoadedEvent.source.pdfDocument?.numPages } as PdfLoadedEvent);\n        if (this.findbarVisible) {\n          PDFViewerApplication.findBar.open();\n        }\n        if (this.propertiesDialogVisible) {\n          PDFViewerApplication.pdfDocumentProperties.open();\n        }\n        this.hasTextLayer = this.textLayer === true;\n\n        // #2691 modified by ngx-extended-pdf-viewer\n        // If initial form data was provided, update the baseline for change detection\n        // after the document is loaded and form fields are initialized\n        if (this.initialAngularFormData && PDFViewerApplication.setInitialAnnotationValues) {\n          setTimeout(() => {\n            PDFViewerApplication.setInitialAnnotationValues?.();\n          }, 200); // Allow time for form fields to be rendered and initialized\n        }\n        // #2691 end of modification by ngx-extended-pdf-viewer\n      });\n    });\n\n    PDFViewerApplication.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n        this.spreadChange.emit(this.spread);\n      });\n    });\n\n    const hideSidebarToolbar = () => {\n      queueMicrotask(() => {\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('annotationlayerrendered', (event: AnnotationLayerRenderedEvent) => {\n      const div = event.source.div;\n      queueMicrotask(() => {\n        event.initialFormDataStoredInThePDF = this.formSupport.initialFormDataStoredInThePDF;\n        this.annotationLayerRendered.emit(event);\n        this.enableOrDisableForms(div, true);\n      });\n    });\n    PDFViewerApplication.eventBus.on('annotationeditorlayerrendered', (event) => queueMicrotask(() => this.annotationEditorLayerRendered.emit(event)));\n    PDFViewerApplication.eventBus.on('xfalayerrendered', (event) => queueMicrotask(() => this.xfaLayerRendered.emit(event)));\n    PDFViewerApplication.eventBus.on('outlineloaded', (event) => queueMicrotask(() => this.outlineLoaded.emit(event)));\n    PDFViewerApplication.eventBus.on('attachmentsloaded', (event) => queueMicrotask(() => this.attachmentsloaded.emit(event)));\n    PDFViewerApplication.eventBus.on('layersloaded', (event) => queueMicrotask(() => this.layersloaded.emit(event)));\n    PDFViewerApplication.eventBus.on('presentationmodechanged', (event) => {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      PDFViewerApplication?.pdfViewer?.destroyBookMode();\n    });\n\n    PDFViewerApplication.eventBus.on('updatefindcontrolstate', (x: FindResult) => {\n      queueMicrotask(() => {\n        let type = PDFViewerApplication.findController.state?.type ?? 'find';\n        if (type === 'again') {\n          type = 'findagain';\n        }\n        const result = {\n          caseSensitive: PDFViewerApplication.findController.state?.caseSensitive,\n          entireWord: PDFViewerApplication.findController.state?.entireWord,\n          findPrevious: PDFViewerApplication.findController.state?.findPrevious,\n          highlightAll: PDFViewerApplication.findController.state?.highlightAll,\n          matchDiacritics: PDFViewerApplication.findController.state?.matchDiacritics,\n          query: PDFViewerApplication.findController.state?.query,\n          type,\n        };\n        this.updateFindMatchesCount.emit({\n          ...result,\n          current: x.matchesCount.current,\n          total: x.matchesCount.total,\n          matches: PDFViewerApplication.findController._pageMatches ?? [],\n          matchesLength: PDFViewerApplication.findController._pageMatchesLength ?? [],\n        } as FindResultMatchesCount); // TODO: remove the cast because it's just duct tape\n\n        if (this.updateFindState) {\n          this.updateFindState.emit(x.state);\n        }\n      });\n    });\n    PDFViewerApplication.eventBus.on('updatefindmatchescount', (x: FindResult) => {\n      x.matchesCount.matches = PDFViewerApplication.findController._pageMatches ?? [];\n      x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength ?? [];\n      queueMicrotask(() =>\n        this.updateFindMatchesCount.emit({\n          caseSensitive: PDFViewerApplication.findController.state?.caseSensitive ?? false,\n          entireWord: PDFViewerApplication.findController.state?.entireWord ?? false,\n          findPrevious: PDFViewerApplication.findController.state?.findPrevious ?? false,\n          highlightAll: PDFViewerApplication.findController.state?.highlightAll ?? false,\n          matchDiacritics: PDFViewerApplication.findController.state?.matchDiacritics ?? false,\n          query: PDFViewerApplication.findController.state?.query ?? '',\n          type: PDFViewerApplication.findController.state?.type as any,\n          current: x.matchesCount.current,\n          total: x.matchesCount.total,\n          matches: x.matchesCount.matches,\n          matchesLength: x.matchesCount.matchesLength,\n        }),\n      );\n    });\n\n    PDFViewerApplication.eventBus.on('pagechanging', (x: PageNumberChange) => {\n      if (!this.pdfScriptLoaderService.shuttingDown) {\n        // hurried users sometimes reload the PDF before it has finished initializing\n        queueMicrotask(() => {\n          const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;\n          const currentPageLabel = PDFViewerApplication.pdfViewer.currentPageLabel;\n\n          if (currentPage !== this.page) {\n            this.pageChange.emit(currentPage);\n            this._page = currentPage;\n          }\n          if (currentPageLabel !== this.pageLabel) {\n            this.pageLabelChange.emit(currentPageLabel);\n            this.pageLabel = currentPageLabel;\n          }\n        });\n      }\n    });\n  }\n\n  public async openPDF2(): Promise<void> {\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n\n    PDFViewerApplication.findBar?.close();\n    PDFViewerApplication.secondaryToolbar?.close();\n    try {\n      // sometimes the annotation editor UI is undefined, but it's a private variable,\n      // so we simply catch the error\n      PDFViewerApplication.eventBus.dispatch('switchannotationeditormode', { mode: 0 });\n    } catch (e) {\n      // ignore this error\n    }\n\n    this.overrideDefaultSettings();\n    PDFViewerApplication.pdfViewer.destroyBookMode();\n    PDFViewerApplication.pdfViewer.stopRendering();\n    PDFViewerApplication.pdfThumbnailViewer.stopRendering();\n\n    // #802 clear the form data; otherwise the \"download\" dialogs opens\n    PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n\n    await PDFViewerApplication.close();\n    this.formSupport?.reset();\n    if (this.initialAngularFormData) {\n      this.formSupport.formData = this.initialAngularFormData;\n    }\n    if (this.filenameForDownload) {\n      PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload;\n    } else {\n      PDFViewerApplication.appConfig.filenameForDownload = this.guessFilenameFromUrl(this._src);\n    }\n\n    let workerSrc: string | (() => string) = pdfDefaultOptions.workerSrc;\n    if (typeof workerSrc === 'function') {\n      workerSrc = workerSrc();\n    }\n    const options: any = {\n      password: this.password,\n      verbosity: this.logLevel,\n      workerSrc,\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\n      if (typeof this.authorization != 'boolean') {\n        if (!options.httpHeaders) options.httpHeaders = {};\n\n        options.httpHeaders.Authorization = this.authorization;\n      }\n    }\n    options.baseHref = this.baseHref;\n    try {\n      if (typeof this._src === 'string') {\n        options.url = this._src;\n      } else if (this._src instanceof ArrayBuffer) {\n        options.data = this._src;\n        if (this._src.byteLength === 0) {\n          // sometimes ngOnInit() calls openPdf2 too early\n          // so let's ignore empty arrays\n          return;\n        }\n      } else if (this._src instanceof Uint8Array) {\n        options.data = this._src;\n        if (this._src.length === 0) {\n          // sometimes ngOnInit() calls openPdf2 too early\n          // so let's ignore empty arrays\n          return;\n        }\n      }\n      options.rangeChunkSize = pdfDefaultOptions.rangeChunkSize;\n      await PDFViewerApplication.open(options);\n    } catch (error) {\n      this.pdfLoadingFailed.emit(error);\n    }\n  }\n\n  private selectCursorTool() {\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: this.handTool ? 1 : 0 });\n  }\n\n  public doReplaceBrowserPrint(useCustomPrintOfPdfJS: boolean): void {\n    if (useCustomPrintOfPdfJS) {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      if (PDFViewerApplication?.printPdf) {\n        window.print = PDFViewerApplication.printPdf.bind(PDFViewerApplication);\n      }\n    } else if (this.originalPrint && !this.originalPrint.toString().includes('printPdf')) {\n      window.print = this.originalPrint;\n    }\n  }\n\n  public async ngOnDestroy(): Promise<void> {\n    this.destroyInitialization = true;\n    if (this.checkRootElementTimeout) {\n      clearTimeout(this.checkRootElementTimeout);\n    }\n    if (this.initializationPromise) {\n      try {\n        await this.initializationPromise;\n      } catch (e) {}\n    }\n\n    this.notificationService.onPDFJSInitSignal.set(undefined);\n    if (this.resizeObserver) {\n      this.resizeObserver.disconnect();\n    }\n    // do not run this code on the server\n    if (typeof window !== 'undefined') {\n      const pc = document.getElementById('printContainer');\n      if (pc) {\n        pc.remove();\n      }\n\n      // Restore original color-scheme to avoid polluting the global document\n      if (this.originalColorScheme !== null) {\n        const docStyle = document.documentElement.style;\n        if (this.originalColorScheme === '') {\n          docStyle.removeProperty('color-scheme');\n        } else {\n          docStyle.setProperty('color-scheme', this.originalColorScheme);\n        }\n        this.originalColorScheme = null;\n      }\n    }\n\n    // do not run this code on the server\n    if (typeof window !== 'undefined') {\n      const originalPrint = this.originalPrint;\n      if (window && originalPrint && !originalPrint.toString().includes('printPdf')) {\n        window.print = originalPrint;\n      }\n    }\n\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n\n    if (PDFViewerApplication) {\n      if (PDFViewerApplication.ngxConsole) {\n        PDFViewerApplication.ngxConsole.reset();\n      }\n      PDFViewerApplication.pdfViewer?.destroyBookMode();\n      PDFViewerApplication.pdfViewer?.stopRendering();\n      PDFViewerApplication.pdfThumbnailViewer?.stopRendering();\n      delete PDFViewerApplication.ngxKeyboardManager;\n      delete PDFViewerApplication.cspPolicyService;\n      PDFViewerApplication.eventBus?.off('afterprint', this.afterPrintListener);\n      PDFViewerApplication.eventBus?.off('beforeprint', this.beforePrintListener);\n      PDFViewerApplication.eventBus?.off('sourcechanged', this.reportSourceChanges.bind(this));\n\n      // #802 clear the form data; otherwise the \"download\" dialogs opens\n      PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n      this.formSupport?.reset();\n      (this.formSupport as any) = undefined;\n      (PDFViewerApplication.onError as any) = undefined;\n\n      try {\n        await PDFViewerApplication.close();\n      } catch (error) {\n        // just ignore it\n        // for example, the secondary toolbar may have not been initialized yet, so\n        // trying to destroy it result in errors\n      }\n      if (PDFViewerApplication.printKeyDownListener) {\n        removeEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n      }\n      const w = globalThis as any;\n      delete w.getFormValueFromAngular;\n      delete w.registerAcroformAnnotations;\n      delete w.getFormValue;\n      delete w.setFormValue;\n      delete w.assignFormIdAndFieldName;\n      delete w.registerAcroformField;\n      delete w.registerXFAField;\n      delete w.assignFormIdAndFieldName;\n      delete w.updateAngularFormValue;\n\n      const bus = PDFViewerApplication.eventBus;\n      if (bus) {\n        PDFViewerApplication.unbindEvents();\n        bus.destroy();\n      }\n      PDFViewerApplication.unbindWindowEvents();\n      PDFViewerApplication?._cleanup();\n      (PDFViewerApplication.eventBus as any) = undefined;\n      delete w.PDFViewerApplication;\n      delete w.PDFViewerApplicationOptions;\n      delete w.PDFViewerApplicationConstants;\n      this.service.ngxExtendedPdfViewerInitialized = false;\n\n      // do not run this code on the server\n      if (typeof window !== 'undefined') {\n        document.querySelectorAll('.ngx-extended-pdf-viewer-file-input').forEach((e: HTMLInputElement) => {\n          e.remove();\n        });\n      }\n    }\n  }\n\n  private isPrimaryMenuVisible(): boolean {\n    if (this.showToolbar) {\n      const visible =\n        this.showDownloadButton ||\n        this.showCommentEditor ||\n        this.showDrawEditor ||\n        this.showHighlightEditor ||\n        this.showTextEditor ||\n        this.showFindButton ||\n        this.showOpenFileButton ||\n        this.showPagingButtons ||\n        this.showPresentationModeButton ||\n        this.showPrintButton ||\n        this.showPropertiesButton ||\n        this.showRotateCwButton ||\n        this.showRotateCcwButton ||\n        this.showHandToolButton ||\n        this.showBookModeButton ||\n        this.showSinglePageModeButton ||\n        this.showVerticalScrollButton ||\n        this.showHorizontalScrollButton ||\n        this.showInfiniteScrollButton ||\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 = this.pdfScriptLoaderService.PDFViewerApplication;\n    const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n\n    if (this.service.ngxExtendedPdfViewerInitialized) {\n      if ('src' in changes || 'base64Src' in changes) {\n        if (this.srcChangeTriggeredByUser) {\n          this.srcChangeTriggeredByUser = false;\n        } else {\n          if (this.pageViewMode === 'book') {\n            const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n            PDFViewerApplication?.pdfViewer?.destroyBookMode();\n            PDFViewerApplication?.pdfViewer?.stopRendering();\n            PDFViewerApplication?.pdfThumbnailViewer?.stopRendering();\n          }\n          if (!!this._src) {\n            if (this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized) {\n              this.openPDF();\n            } else {\n              const initialized = this.notificationService.onPDFJSInitSignal();\n              if (initialized) {\n                await this.openPDF2();\n              } else {\n                // the library loads the PDF file later during the initialization\n              }\n            }\n          } else {\n            // #802 clear the form data; otherwise the \"download\" dialogs opens\n            await this.closeDocument(PDFViewerApplication);\n          }\n        }\n      }\n      if ('enableDragAndDrop' in changes) {\n        PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop);\n      }\n\n      if ('findbarVisible' in changes) {\n        if (changes['findbarVisible'].currentValue) {\n          PDFViewerApplication.findBar.open();\n        } else {\n          PDFViewerApplication.findBar.close();\n        }\n      }\n\n      if ('propertiesDialogVisible' in changes) {\n        if (this.propertiesDialogVisible) {\n          PDFViewerApplication.pdfDocumentProperties.open();\n        } else {\n          PDFViewerApplication.pdfDocumentProperties.close();\n        }\n      }\n\n      if ('zoom' in changes) {\n        await this.setZoom();\n      }\n\n      if ('maxZoom' in changes) {\n        if (PDFViewerApplication.pdfViewer) {\n          PDFViewerApplication.pdfViewer.maxZoom = this.maxZoom;\n        }\n        if (PDFViewerApplication.toolbar) {\n          PDFViewerApplication.toolbar.maxZoom = this.maxZoom;\n        }\n      }\n\n      if ('minZoom' in changes) {\n        if (PDFViewerApplication.pdfViewer) {\n          PDFViewerApplication.pdfViewer.minZoom = this.minZoom;\n        }\n        if (PDFViewerApplication.toolbar) {\n          PDFViewerApplication.toolbar.minZoom = this.minZoom;\n        }\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          if (PDFViewerApplication.pdfViewer.scrollMode !== Number(this.scrollMode)) {\n            PDFViewerApplication.eventBus.dispatch('switchscrollmode', { mode: Number(this.scrollMode) });\n          }\n        }\n      }\n      if ('activeSidebarView' in changes) {\n        if (this.sidebarVisible) {\n          PDFViewerApplication.pdfSidebar.open();\n          const view = Number(this.activeSidebarView);\n          if (view === 1 || view === 2 || view === 3 || view === 4) {\n            PDFViewerApplication.pdfSidebar.switchView(view, true);\n          } else {\n            console.error('[activeSidebarView] must be an integer value between 1 and 4');\n          }\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      this.hideToolbarIfItIsEmpty();\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?.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.formSupport.updateFormFieldsInPdfCalledByNgOnChanges(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 ('pageViewMode' in changes && !changes['pageViewMode'].isFirstChange()) {\n      this.pageViewMode = changes['pageViewMode'].currentValue;\n    }\n    if ('replaceBrowserPrint' in changes && typeof window !== 'undefined') {\n      this.doReplaceBrowserPrint(this.replaceBrowserPrint);\n    }\n    if ('disableForms' in changes) {\n      this.enableOrDisableForms(this.elementRef.nativeElement, false);\n    }\n    setTimeout(() => this.calcViewerPositionTop());\n  }\n\n  private async closeDocument(PDFViewerApplication: IPDFViewerApplication) {\n    if (this.pageViewMode === 'book') {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      PDFViewerApplication?.pdfViewer?.destroyBookMode();\n      PDFViewerApplication?.pdfViewer?.stopRendering();\n      PDFViewerApplication?.pdfThumbnailViewer?.stopRendering();\n    }\n    PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n    this.formSupport?.reset();\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  private async setZoom() {\n    if (typeof window === 'undefined') {\n      return; // server side rendering\n    }\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 = this.pdfScriptLoaderService.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 = this.pdfScriptLoaderService.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 initResizeObserver(): void {\n    try {\n      const viewer = document.getElementById('viewer');\n      if (viewer) {\n        this.resizeObserver = new ResizeObserver(() => {\n          this.onResize();\n        });\n        this.resizeObserver.observe(viewer);\n      }\n    } catch (exception) {\n      console.log('ResizeObserver is not supported by your browser');\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        if (this.secondaryToolbarComponent) {\n          this.secondaryToolbarComponent.checkVisibility();\n        }\n        if (this.dynamicCSSComponent) {\n          this.dynamicCSSComponent.updateToolbarWidth();\n        }\n      }\n      this.dynamicCSSComponent.checkHeight(this, this.logLevel);\n    }\n    this.dynamicCSSComponent.removeScrollbarInInfiniteScrollMode(false, this.pageViewMode, this.primaryMenuVisible, this, this.logLevel);\n  }\n\n  @HostListener('contextmenu')\n  public onContextMenu(): boolean {\n    return this.contextMenuAllowed;\n  }\n\n  private async pageHasVisibleSignature(page: PDFPageProxy): Promise<boolean> {\n    const annotations = await page.getAnnotations();\n    const signature = annotations.find((a) => a.fieldType === 'Sig');\n    if (signature) {\n      const rect = signature?.rect;\n      if (rect && rect.length === 4 && rect[2] - rect[0] > 0 && rect[3] - rect[1] > 0 && !signature.hidden) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public async scrollSignatureWarningIntoView(pdf: PDFDocumentProxy): Promise<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    for (let i = 1; i <= pdf?.numPages; i++) {\n      // track the current page\n      const page = await pdf.getPage(i);\n\n      if (await this.pageHasVisibleSignature(page)) {\n        this.hasSignature = true;\n        break; // stop looping through the pages as soon as we find a signature\n      }\n    }\n    if (this.hasSignature) {\n      queueMicrotask(() => {\n        // Defer scrolling to ensure it happens after any other UI updates\n        setTimeout(() => {\n          const viewerContainer = document.querySelector('#viewerContainer');\n          viewerContainer?.scrollBy(0, -32); // Adjust the scroll position\n        });\n      });\n    }\n  }\n\n  public async zoomToPageWidth(event: MouseEvent): Promise<void> {\n    if (this.handTool) {\n      if (!pdfDefaultOptions.doubleTapZoomsInHandMode) {\n        return;\n      }\n    } else if (!pdfDefaultOptions.doubleTapZoomsInTextSelectionMode) {\n      return;\n    }\n    if (this.pageViewMode === 'book') {\n      // scaling doesn't work in book mode\n      return;\n    }\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    const desiredCenterY = event.clientY;\n    const previousScale = (PDFViewerApplication.pdfViewer as any).currentScale;\n\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 if (pdfDefaultOptions.doubleTapResetsZoomOnSecondDoubleTap) {\n      if (this.previousZoom) {\n        this.zoom = this.previousZoom;\n      } else {\n        this.zoom = 'page-width';\n      }\n      await this.setZoom();\n    } else {\n      return;\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  private enableOrDisableForms(div: HTMLElement, doNotEnable: boolean) {\n    if (!this.disableForms && doNotEnable) {\n      return;\n    }\n    const xfaLayers = Array.from(div.querySelectorAll('.xfaLayer'));\n    const acroFormLayers = Array.from(div.querySelectorAll('.annotationLayer'));\n    const layers = xfaLayers.concat(...acroFormLayers);\n    layers.forEach((layer) => layer.querySelectorAll('input').forEach((x) => (x.disabled = this.disableForms)));\n    layers.forEach((layer) => layer.querySelectorAll('select').forEach((x) => (x.disabled = this.disableForms)));\n    layers.forEach((layer) => layer.querySelectorAll('textarea').forEach((x) => (x.disabled = this.disableForms)));\n  }\n\n  public closeCommentsSidebar(): void {\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication?.eventBus) {\n      PDFViewerApplication.eventBus.dispatch('switchannotationeditormode', {\n        source: this,\n        mode: 0, // AnnotationEditorType.NONE\n      });\n    }\n  }\n}\n","@if (theme === 'dark') {\n  <pdf-dark-theme></pdf-dark-theme>\n}\n@if (theme === 'light') {\n  <pdf-light-theme></pdf-light-theme>\n}\n<pdf-acroform-default-theme></pdf-acroform-default-theme>\n\n<pdf-dynamic-css\n  #DynamicCssComponent\n  [zoom]=\"mobileFriendlyZoomScale\"\n></pdf-dynamic-css>\n<ng-content *ngTemplateOutlet=\"customPdfViewer ? customPdfViewer : defaultPdfViewer\"></ng-content>\n\n<ng-template #defaultPdfViewer>\n  <div\n    class=\"zoom\"\n    [style.height]=\"minHeight ? minHeight : height\"\n    #root\n  >\n    <div class=\"html\">\n      <div\n        class=\"body pdf-js-version-{{ majorMinorPdfJsVersion }}\"\n        [style.backgroundColor]=\"backgroundColor\"\n      >\n        <div id=\"outerContainer\">\n          @if (showFreeFloatingBar) {\n            <div class=\"free-floating-bar\">\n              <ng-content *ngTemplateOutlet=\"customFreeFloatingBar ? customFreeFloatingBar : defaultFreeFloatingBar\"> </ng-content>\n            </div>\n          }\n          <pdf-sidebar\n            #pdfsidebar\n            [sidebarVisible]=\"sidebarVisible || false\"\n            [showSidebarButton]=\"showSidebarButton\"\n            [customSidebar]=\"customSidebar\"\n            [customThumbnail]=\"customThumbnail\"\n            (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n            [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n            [sidebarPositionTop]=\"sidebarPositionTop\"\n          >\n          </pdf-sidebar>\n          <div\n            id=\"mainContainer\"\n            [class.toolbar-hidden]=\"!primaryMenuVisible\"\n          >\n            <pdf-dummy-components></pdf-dummy-components>\n\n            <pdf-toolbar\n              (onToolbarLoaded)=\"onToolbarLoaded($event)\"\n              [sidebarVisible]=\"sidebarVisible\"\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [customToolbar]=\"customToolbar\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [(pageViewMode)]=\"pageViewMode\"\n              [primaryMenuVisible]=\"primaryMenuVisible\"\n              [scrollMode]=\"scrollMode ?? 0\"\n              [showPropertiesButton]=\"showPropertiesButton\"\n              [showBookModeButton]=\"showBookModeButton\"\n              [showDownloadButton]=\"showDownloadButton\"\n              [showCommentEditor]=\"showCommentEditor\"\n              [showDrawEditor]=\"showDrawEditor\"\n              [showHighlightEditor]=\"showHighlightEditor\"\n              [showFindButton]=\"showFindButton\"\n              [showHandToolButton]=\"showHandToolButton\"\n              [handTool]=\"handTool\"\n              [showHorizontalScrollButton]=\"showHorizontalScrollButton\"\n              [showInfiniteScrollButton]=\"showInfiniteScrollButton\"\n              [showOpenFileButton]=\"showOpenFileButton\"\n              [showMovePageButton]=\"showMovePageButton\"\n              [showPagingButtons]=\"showPagingButtons\"\n              [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons\"\n              [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons\"\n              [showPageNumber]=\"showPageNumber\"\n              [showPageLabel]=\"showPageLabel\"\n              [showPresentationModeButton]=\"showPresentationModeButton && pageViewMode !== 'book'\"\n              [showPrintButton]=\"enablePrint ? showPrintButton : false\"\n              [showRotateCwButton]=\"showRotateCwButton\"\n              [showRotateCcwButton]=\"showRotateCcwButton\"\n              [showSecondaryToolbarButton]=\"showSecondaryToolbarButton && !service.secondaryMenuIsEmpty\"\n              [showSidebarButton]=\"showSidebarButton\"\n              [showSinglePageModeButton]=\"showSinglePageModeButton\"\n              [showSignatureEditor]=\"enableSignatureEditor ? showSignatureEditor : false\"\n              [showSpreadButton]=\"showSpreadButton\"\n              [showStampEditor]=\"showStampEditor\"\n              [showTextEditor]=\"showTextEditor\"\n              [showVerticalScrollButton]=\"showVerticalScrollButton\"\n              [showWrappedScrollButton]=\"showWrappedScrollButton\"\n              [showZoomButtons]=\"showZoomButtons\"\n              [showZoomDropdown]=\"showZoomDropdown\"\n              [spread]=\"spread\"\n              [textLayer]=\"textLayer\"\n              [toolbarMarginTop]=\"toolbarMarginTop\"\n              [toolbarWidth]=\"toolbarWidth\"\n              [zoomLevels]=\"zoomLevels\"\n              [findbarVisible]=\"findbarVisible\"\n              [hasTextLayer]=\"hasTextLayer\"\n            ></pdf-toolbar>\n\n            <div \n              class=\"editorParamsToolbar sidebar hidden menu\" \n              id=\"editorCommentParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div id=\"editorCommentsSidebar\" class=\"menuContainer\" role=\"landmark\" aria-labelledby=\"editorCommentsSidebarHeader\">\n                <div id=\"editorCommentsSidebarHeader\" role=\"heading\" aria-level=\"2\">\n                  <span class=\"commentCount\">\n                    <span id=\"editorCommentsSidebarTitle\">Comments</span>\n                    <span id=\"editorCommentsSidebarCount\"></span>\n                  </span>\n                  <button id=\"editorCommentsSidebarCloseButton\" type=\"button\" tabindex=\"0\" title=\"Close the sidebar\" (click)=\"closeCommentsSidebar()\">\n                    <svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n                      <path fill=\"currentColor\" d=\"M2.343 2.343a.5.5 0 0 1 .707 0L8 7.293l4.95-4.95a.5.5 0 1 1 .707.707L8.707 8l4.95 4.95a.5.5 0 0 1-.707.707L8 8.707l-4.95 4.95a.5.5 0 0 1-.707-.707L7.293 8 2.343 2.657a.5.5 0 0 1 0-.707z\"/>\n                    </svg>\n                    <span class=\"visually-hidden\">Close the sidebar</span>\n                  </button>\n                </div>\n                <div id=\"editorCommentsSidebarListContainer\">\n                  <ul id=\"editorCommentsSidebarList\"></ul>\n                </div>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight menu\"\n              id=\"editorSignatureParamsToolbar\"\n            >\n              <div\n                id=\"addSignatureDoorHanger\"\n                class=\"menuContainer\"\n                role=\"region\"\n                data-l10n-id=\"pdfjs-editor-add-signature-container\"\n              >\n                <button\n                  id=\"editorSignatureAddSignature\"\n                  class=\"toolbarButton labeled\"\n                  type=\"button\"\n                  tabindex=\"0\"\n                  data-l10n-id=\"pdfjs-editor-signature-add-signature-button\"\n                >\n                  <span\n                    data-l10n-id=\"pdfjs-editor-signature-add-signature-button-label\"\n                    class=\"editorParamsLabel\"\n                  ></span>\n                </button>\n              </div>\n            </div>\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorHighlightParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div\n                id=\"highlightParamsToolbarContainer\"\n                class=\"editorParamsToolbarContainer\"\n              >\n                <div\n                  id=\"editorHighlightColorPicker\"\n                  class=\"colorPicker\"\n                >\n                  <span\n                    id=\"highlightColorPickerLabel\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-highlight-colorpicker-label\"\n                    >Highlight color</span\n                  >\n                </div>\n                <div id=\"editorHighlightThickness\">\n                  <label\n                    for=\"editorFreeHighlightThickness\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-free-highlight-thickness-input\"\n                    >Thickness</label\n                  >\n                  <div class=\"thicknessPicker\">\n                    <input\n                      type=\"range\"\n                      id=\"editorFreeHighlightThickness\"\n                      class=\"editorParamsSlider\"\n                      data-l10n-id=\"pdfjs-editor-free-highlight-thickness-title\"\n                      value=\"12\"\n                      min=\"8\"\n                      max=\"24\"\n                      step=\"1\"\n                    />\n                  </div>\n                </div>\n                <div id=\"editorHighlightVisibility\">\n                  <div class=\"divider\"></div>\n                  <div class=\"toggler\">\n                    <label\n                      for=\"editorHighlightShowAll\"\n                      class=\"editorParamsLabel\"\n                      data-l10n-id=\"pdfjs-editor-highlight-show-all-button-label\"\n                      >Show all</label\n                    >\n                    <button\n                      id=\"editorHighlightShowAll\"\n                      class=\"toggle-button\"\n                      data-l10n-id=\"pdfjs-editor-highlight-show-all-button\"\n                      aria-pressed=\"true\"\n                    ></button>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorFreeTextParamsToolbar\"\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div class=\"editorParamsToolbarContainer\">\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorFreeTextColor\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-free-text-color-input\"\n                    >Font Color</label\n                  >\n                  <input\n                    type=\"color\"\n                    id=\"editorFreeTextColor\"\n                    class=\"editorParamsColor\"\n                  />\n                </div>\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorFreeTextFontSize\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-free-text-size-input\"\n                    >Font Size</label\n                  >\n                  <input\n                    type=\"range\"\n                    id=\"editorFreeTextFontSize\"\n                    class=\"editorParamsSlider\"\n                    value=\"10\"\n                    min=\"5\"\n                    max=\"100\"\n                    step=\"1\"\n                  />\n                </div>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorStampParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div class=\"editorParamsToolbarContainer\">\n                <button\n                  id=\"editorStampAddImage\"\n                  class=\"secondaryToolbarButton\"\n                  title=\"Add image\"\n                  data-l10n-id=\"pdfjs-editor-stamp-add-image-button\"\n                >\n                  <svg\n                    aria-hidden=\"true\"\n                    focusable=\"false\"\n                    width=\"16\"\n                    height=\"16\"\n                    viewBox=\"0 0 16 16\"\n                    fill=\"none\"\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                    class=\"align-image-to-text\"\n                  >\n                    <path\n                      d=\"M7.00488 9.75V14C7.00488 14.1658 7.07073 14.3247 7.18794 14.4419C7.30515 14.5592 7.46412 14.625 7.62988 14.625C7.79564 14.625 7.95461 14.5592 8.07183 14.4419C8.18904 14.3247 8.25488 14.1658 8.25488 14V9.75L8.75488 9.25H13.0049C13.1706 9.25 13.3296 9.18415 13.4468 9.06694C13.564 8.94973 13.6299 8.79076 13.6299 8.625C13.6299 8.45924 13.564 8.30027 13.4468 8.18306C13.3296 8.06585 13.1706 8 13.0049 8H8.75488L8.25488 7.5V3.25C8.25488 3.08424 8.18904 2.92527 8.07183 2.80806C7.95461 2.69085 7.79564 2.625 7.62988 2.625C7.46412 2.625 7.30515 2.69085 7.18794 2.80806C7.07073 2.92527 7.00488 3.08424 7.00488 3.25V7.5L6.50488 8H2.25488C2.08912 8 1.93015 8.06585 1.81294 8.18306C1.69573 8.30027 1.62988 8.45924 1.62988 8.625C1.62988 8.79076 1.69573 8.94973 1.81294 9.06694C1.93015 9.18415 2.08912 9.25 2.25488 9.25H6.39188L7.00488 9.75Z\"\n                      fill=\"black\"\n                    />\n                  </svg>\n                  <span data-l10n-id=\"pdfjs-editor-stamp-add-image-button-label\">Add image</span>\n                </button>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorInkParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n              [class.server-side-rendering]=\"serverSideRendering\"\n            >\n              <div class=\"editorParamsToolbarContainer\">\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorInkColor\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-ink-color-input\"\n                    >Color</label\n                  >\n                  <input\n                    type=\"color\"\n                    id=\"editorInkColor\"\n                    class=\"editorParamsColor\"\n                  />\n                </div>\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorInkThickness\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-ink-thickness-input\"\n                    >Thickness</label\n                  >\n                  <input\n                    type=\"range\"\n                    id=\"editorInkThickness\"\n                    class=\"editorParamsSlider\"\n                    value=\"1\"\n                    min=\"1\"\n                    max=\"20\"\n                    step=\"1\"\n                  />\n                </div>\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorInkOpacity\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-ink-opacity-input\"\n                    >Opacity</label\n                  >\n                  <input\n                    type=\"range\"\n                    id=\"editorInkOpacity\"\n                    class=\"editorParamsSlider\"\n                    value=\"1\"\n                    min=\"0.05\"\n                    max=\"1\"\n                    step=\"0.05\"\n                  />\n                </div>\n              </div>\n            </div>\n\n            <pdf-secondary-toolbar\n              #pdfSecondaryToolbarComponent\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [customSecondaryToolbar]=\"customSecondaryToolbar\"\n              [secondaryToolbarTop]=\"secondaryToolbarTop\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              (spreadChange)=\"onSpreadChange($event)\"\n              [localizationInitialized]=\"localizationInitialized\"\n            >\n            </pdf-secondary-toolbar>\n\n            <pdf-findbar\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [findbarLeft]=\"findbarLeft\"\n              [findbarTop]=\"findbarTop\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [showFindButton]=\"showFindButton || false\"\n              [customFindbarInputArea]=\"customFindbarInputArea\"\n              [customFindbarButtons]=\"customFindbarButtons\"\n              [showFindEntireWord]=\"showFindEntireWord\"\n              [showFindHighlightAll]=\"showFindHighlightAll\"\n              [showFindMatchDiacritics]=\"showFindMatchDiacritics\"\n              [showFindMatchCase]=\"showFindMatchCase\"\n              [showFindMultiple]=\"showFindMultiple\"\n              [showFindRegexp]=\"showFindRegexp\"\n              [showFindMessages]=\"showFindMessages\"\n              [showFindResultsCount]=\"showFindResultsCount\"\n            >\n            </pdf-findbar>\n\n            <pdf-context-menu></pdf-context-menu>\n\n            <div\n              id=\"viewerContainer\"\n              [style.top]=\"viewerPositionTop\"\n              [style.backgroundColor]=\"backgroundColor\"\n            >\n              @if (hasSignature && showUnverifiedSignatures) {\n                <div class=\"unverified-signature-warning\">\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.\n                Please download the file and open it in Acrobat Reader to verify the signature is valid.\"\n                      | async\n                  }}\n                </div>\n              }\n              <div\n                id=\"viewer\"\n                class=\"pdfViewer\"\n                [style.backgroundColor]=\"backgroundColor\"\n                (dblclick)=\"zoomToPageWidth($event)\"\n              ></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-alt-text-dialog></pdf-alt-text-dialog>\n            <pdf-alt-text-settings-dialog></pdf-alt-text-settings-dialog>\n            <pdf-prepare-printing-dialog></pdf-prepare-printing-dialog>\n            <pdf-add-signature-dialog></pdf-add-signature-dialog>\n            <pdf-edit-signature-dialog></pdf-edit-signature-dialog>\n          </div>\n          <!-- dialogContainer -->\n        </div>\n        <div\n          id=\"editorUndoBar\"\n          class=\"messageBar\"\n          role=\"status\"\n          aria-labelledby=\"editorUndoBarMessage\"\n          tabindex=\"-1\"\n          hidden\n        >\n          <div>\n            <div>\n              <span\n                id=\"editorUndoBarMessage\"\n                class=\"description\"\n              ></span>\n            </div>\n            <button\n              id=\"editorUndoBarUndoButton\"\n              class=\"undoButton\"\n              type=\"button\"\n              tabindex=\"0\"\n              title=\"Undo\"\n              data-l10n-id=\"pdfjs-editor-undo-bar-undo-button\"\n            >\n              <span data-l10n-id=\"pdfjs-editor-undo-bar-undo-button-label\">Undo</span>\n            </button>\n            <button\n              id=\"editorUndoBarCloseButton\"\n              class=\"closeButton\"\n              type=\"button\"\n              tabindex=\"0\"\n              title=\"Close\"\n              data-l10n-id=\"pdfjs-editor-undo-bar-close-button\"\n            >\n              <span data-l10n-id=\"pdfjs-editor-undo-bar-close-button-label\">Close</span>\n            </button>\n          </div>\n        </div>\n        <!-- editorUndoBar -->\n        <!-- outerContainer -->\n      </div>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #defaultFreeFloatingBar> </ng-template>\n","import { ChangeDetectorRef, Component, Input, effect } from '@angular/core';\nimport { UpdateUIStateEvent } from '../../events/update-ui-state-event';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { PDFNotificationService } from './../../pdf-notification-service';\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: ResponsiveVisibility = true;\n\n  public disableRotate = true;\n\n  @Input()\n  public clockwise = true;\n\n  @Input()\n  public counterClockwise = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService, private changeDetectorRef: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  public rotateCW(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('rotatecw');\n  }\n\n  public rotateCCW(): void {\n    this.PDFViewerApplication?.eventBus.dispatch('rotateccw');\n  }\n\n  public onPdfJsInit(): void {\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event));\n  }\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","@if (clockwise) {\n  <pdf-shy-button\n    [action]=\"rotateCW\"\n    primaryToolbarId=\"primaryPageRotateCw\"\n    class=\"rotateCw\"\n    [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n    title=\"Rotate Clockwise\"\n    l10nId=\"pdfjs-page-rotate-cw-button\"\n    l10nLabel=\"pdfjs-page-rotate-cw-button-label\"\n    [disabled]=\"disableRotate\"\n    [order]=\"900\"\n    [closeOnClick]=\"false\"\n    image=\"<svg aria-hidden='true' focusable='false' width='23px' height='23px' viewBox='0 0 24 24'><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'/></svg>\"\n    >\n  </pdf-shy-button>\n}\n@if (counterClockwise) {\n  <pdf-shy-button\n    [action]=\"rotateCCW\"\n    primaryToolbarId=\"primaryPageRotateCcw\"\n    class=\"rotateCcw\"\n    [cssClass]=\"showRotateButton | responsiveCSSClass : 'hiddenXLView'\"\n    title=\"Rotate Counterclockwise\"\n    l10nId=\"pdfjs-page-rotate-ccw-button\"\n    l10nLabel=\"pdfjs-page-rotate-ccw-button-label\"\n    [disabled]=\"disableRotate\"\n    [order]=\"1000\"\n    [closeOnClick]=\"false\"\n    image=\"<svg aria-hidden='true' focusable='false' width='23px' height='23px' viewBox='0 0 24 24'><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'/></svg>\"\n    >\n  </pdf-shy-button>\n}\n","// tslint:disable:max-line-length\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DynamicCssComponent } from './dynamic-css/dynamic-css.component';\nimport { PositioningService } from './dynamic-css/positioning.service';\nimport { NgxExtendedPdfViewerComponent } from './ngx-extended-pdf-viewer.component';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer.service';\nimport { AddSignatureDialogComponent as PdfAddSignatureDialogComponent } from './pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component';\nimport { PdfAltTextDialogComponent } from './pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component';\nimport { PdfAltTextSettingsDialogComponent } from './pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component';\nimport { PdfDocumentPropertiesDialogComponent } from './pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nimport { EditSignatureDialogComponent as PdfEditSignatureDialogComponent } from './pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-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 { NegativeResponsiveCSSClassPipe, ResponsiveCSSClassPipe } from './responsive-visibility';\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 { 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 { PdfBookModeComponent } from './toolbar/pdf-book-mode/pdf-book-mode.component';\nimport { PdfCommentEditorComponent } from './toolbar/pdf-comment-editor/pdf-comment-editor.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDocumentPropertiesComponent } from './toolbar/pdf-document-properties/pdf-document-properties.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfDrawEditorComponent } from './toolbar/pdf-draw-editor/pdf-draw-editor.component';\nimport { PdfEditorSignatureComponent } from './toolbar/pdf-editor-signature/pdf-editor-signature.component';\nimport { PdfEditorComponent } from './toolbar/pdf-editor/pdf-editor.component';\nimport { PdfEvenSpreadComponent } from './toolbar/pdf-even-spread/pdf-even-spread.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 { PdfFindMultipleComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component';\nimport { PdfFindRegExpComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfMatchDiacriticsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.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 { PdfHighlightEditorComponent } from './toolbar/pdf-highlight-editor/pdf-highlight-editor.component';\nimport { PdfHorizontalScrollComponent } from './toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component';\nimport { PdfInfiniteScrollComponent } from './toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component';\nimport { PdfMoveDownComponent } from './toolbar/pdf-move-down/pdf-move-down.component';\nimport { PdfMoveUpComponent } from './toolbar/pdf-move-up/pdf-move-up.component';\nimport { PdfNoSpreadComponent } from './toolbar/pdf-no-spread/pdf-no-spread.component';\nimport { PdfOddSpreadComponent } from './toolbar/pdf-odd-spread/pdf-odd-spread.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 { PdfRotatePageCcwComponent } from './toolbar/pdf-rotate-page-ccw/pdf-rotate-page-ccw.component';\nimport { PdfRotatePageCwComponent } from './toolbar/pdf-rotate-page-cw/pdf-rotate-page-cw.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfShyButtonComponent } from './toolbar/pdf-shy-button/pdf-shy-button.component';\nimport { PdfSinglePageModeComponent } from './toolbar/pdf-single-page-mode/pdf-single-page-mode.component';\nimport { PdfStampEditorComponent } from './toolbar/pdf-stamp-editor/pdf-stamp-editor.component';\nimport { PdfTextEditorComponent } from './toolbar/pdf-text-editor/pdf-text-editor.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 { PdfVerticalScrollModeComponent } from './toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component';\nimport { PdfWrappedScrollModeComponent } from './toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.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\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\n@NgModule({\n  imports: [CommonModule, FormsModule],\n  declarations: [\n    DynamicCssComponent,\n    NegativeResponsiveCSSClassPipe,\n    NgxExtendedPdfViewerComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAddSignatureDialogComponent,\n    PdfBookModeComponent,\n    PdfCommentEditorComponent,\n    PdfContextMenuComponent,\n    PdfDarkThemeComponent,\n    PdfDrawEditorComponent,\n    PdfAltTextDialogComponent,\n    PdfAltTextSettingsDialogComponent,\n    PdfDocumentPropertiesComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfDownloadComponent,\n    PdfDummyComponentsComponent,\n    PdfEditorComponent,\n    PdfEditSignatureDialogComponent,\n    PdfEditorSignatureComponent,\n    PdfErrorMessageComponent,\n    PdfEvenSpreadComponent,\n    PdfFindbarComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindButtonComponent,\n    PdfFindEntireWordComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindInputAreaComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindMultipleComponent,\n    PdfFindRegExpComponent,\n    PdfFindNextComponent,\n    PdfFindPreviousComponent,\n    PdfFindResultsCountComponent,\n    PdfFirstPageComponent,\n    PdfHandToolComponent,\n    PdfHighlightEditorComponent,\n    PdfHorizontalScrollComponent,\n    PdfInfiniteScrollComponent,\n    PdfLastPageComponent,\n    PdfLightThemeComponent,\n    PdfMatchDiacriticsComponent,\n    PdfMoveDownComponent,\n    PdfMoveUpComponent,\n    PdfNextPageComponent,\n    PdfNoSpreadComponent,\n    PdfOddSpreadComponent,\n    PdfOpenFileComponent,\n    PdfPageNumberComponent,\n    PdfPagingAreaComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfPresentationModeComponent,\n    PdfPreviousPageComponent,\n    PdfPrintComponent,\n    PdfRotatePageComponent,\n    PdfRotatePageCwComponent,\n    PdfRotatePageCcwComponent,\n    PdfSearchInputFieldComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSelectToolComponent,\n    PdfShyButtonComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSinglePageModeComponent,\n    PdfStampEditorComponent,\n    PdfTextEditorComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfToggleSidebarComponent,\n    PdfToolbarComponent,\n    PdfVerticalScrollModeComponent,\n    PdfWrappedScrollModeComponent,\n    PdfZoomDropdownComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfZoomToolbarComponent,\n    ResponsiveCSSClassPipe,\n    TranslatePipe,\n  ],\n  providers: [NgxExtendedPdfViewerService, PositioningService],\n  exports: [\n    NegativeResponsiveCSSClassPipe,\n    NgxExtendedPdfViewerComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAddSignatureDialogComponent,\n    PdfAltTextDialogComponent,\n    PdfAltTextSettingsDialogComponent,\n    PdfBookModeComponent,\n    PdfCommentEditorComponent,\n    PdfContextMenuComponent,\n    PdfDarkThemeComponent,\n    PdfDocumentPropertiesComponent,\n    PdfDrawEditorComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfDownloadComponent,\n    PdfEditorComponent,\n    PdfEditSignatureDialogComponent,\n    PdfEditorSignatureComponent,\n    PdfErrorMessageComponent,\n    PdfEvenSpreadComponent,\n    PdfFindbarComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindButtonComponent,\n    PdfFindEntireWordComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindInputAreaComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindNextComponent,\n    PdfFindPreviousComponent,\n    PdfFindResultsCountComponent,\n    PdfFirstPageComponent,\n    PdfHandToolComponent,\n    PdfHighlightEditorComponent,\n    PdfHorizontalScrollComponent,\n    PdfInfiniteScrollComponent,\n    PdfLastPageComponent,\n    PdfLightThemeComponent,\n    PdfMatchDiacriticsComponent,\n    PdfMoveDownComponent,\n    PdfMoveUpComponent,\n    PdfNextPageComponent,\n    PdfNoSpreadComponent,\n    PdfOddSpreadComponent,\n    PdfOpenFileComponent,\n    PdfPageNumberComponent,\n    PdfPagingAreaComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfPresentationModeComponent,\n    PdfPreviousPageComponent,\n    PdfPrintComponent,\n    PdfRotatePageComponent,\n    PdfSearchInputFieldComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSelectToolComponent,\n    PdfShyButtonComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSinglePageModeComponent,\n    PdfStampEditorComponent,\n    PdfTextEditorComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfToggleSidebarComponent,\n    PdfToolbarComponent,\n    PdfVerticalScrollModeComponent,\n    PdfWrappedScrollModeComponent,\n    PdfZoomDropdownComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfZoomToolbarComponent,\n    ResponsiveCSSClassPipe,\n  ],\n})\nexport class NgxExtendedPdfViewerModule {}\n","/*\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {IL10n} l10n - Localization service.\n * @property {boolean} [enableScripting]\n * @property {Promise<boolean>} [hasJSActionsPromise]\n * @property {Promise<Object<string, Array<Object>> | null>}\n *   [fieldObjectsPromise]\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n * @property {TextAccessibilityManager} [accessibilityManager]\n */\n\nimport { AnnotationStorage } from './pdf-annotation-storage';\nimport { PageViewport } from './pdf-page-view-port';\nimport { PDFPageProxy } from './pdf-viewer-application';\n\nexport type AnnotationLayerBuilderOptions = {\n  pdfPage: PDFPageProxy;\n  annotationStorage?: AnnotationStorage | undefined;\n  /**\n   * - Path for image resources, mainly\n   * for annotation icons. Include trailing slash.\n   */\n  imageResourcesPath?: string | undefined;\n  renderForms: boolean;\n  linkService: any; // IPDFLinkService;\n  downloadManager?: any /*import('./interfaces').IDownloadManager */ | undefined;\n  enableScripting?: boolean | undefined;\n  hasJSActionsPromise?: Promise<boolean> | undefined;\n  fieldObjectsPromise?:\n    | Promise<{\n        [x: string]: Object[];\n      } | null>\n    | undefined;\n  annotationCanvasMap?: Map<string, HTMLCanvasElement> | undefined;\n  accessibilityManager?: any /*import('./text_accessibility.js').TextAccessibilityManager */ | undefined;\n  annotationEditorUIManager?: any /* import('../src/pdf').AnnotationEditorUIManager */ | undefined;\n  onAppend?: Function | undefined;\n};\n\nexport type AnnotationLayerBuilderRenderOptions = {\n  viewport: PageViewport;\n  /**\n   * - The default value is \"display\".\n   */\n  intent?: string | undefined;\n  structTreeLayer?: any /* import('./struct_tree_layer_builder.js').StructTreeLayerBuilder */ | undefined;\n};\n\nexport interface AnnotationLayerBuilder {\n  pageDiv: HTMLDivElement;\n  pdfPage: PDFPageProxy;\n  annotationStorage: AnnotationStorage;\n  imageResourcesPath: string;\n  renderForms: boolean;\n  enableScripting: boolean;\n  annotationCanvasMap: Map<string, HTMLCanvasElement>;\n  render({ viewport, intent, structTreeLayer }: AnnotationLayerBuilderRenderOptions): Promise<void>;\n}\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  close(): void;\n\n  open(): void;\n}\n","export enum SpreadMode {\n  UNKNOWN = -1,\n  NONE = 0, // Default value.\n  ODD = 1,\n  EVEN = 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(PDFViewerApplication: IPDFViewerApplication): Promise<any> {\n    const pdfDocument = PDFViewerApplication.pdfDocument;\n\n    const result: any = {};\n    const md = await pdfDocument.getMetadata();\n    const info = md.info as unknown as any;\n\n    result.author = info.Author;\n    result.creationDate = this.toDateObject(info.CreationDate);\n    result.creator = info.Creator;\n    result.keywords = info.Keywords;\n    result.linearized = info.IsLinearized;\n    result.modificationDate = this.toDateObject(info.ModDate);\n    result.pdfFormatVersion = info.PDFFormatVersion;\n    result.producer = info.Producer;\n    result.subject = info.Subject;\n    result.title = info.Title;\n    if (md['contentDispositionFilename']) {\n      result.fileName = md['contentDispositionFilename'];\n    }\n    result.maybeFileSize = (await pdfDocument.getDownloadInfo()).length;\n    return result;\n  }\n\n  /** shamelessly copied from pdf.js */\n  private toDateObject(input: string | any): Date | null {\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 */\nexport * from './lib/dynamic-css/positioning.service';\nexport * from './lib/focus-management.service';\nexport * from './lib/events/annotation-editor-layer-event';\nexport * from './lib/events/annotation-editor-layer-rendered-event';\nexport * from './lib/events/annotation-editor-mode-changed-event';\nexport * from './lib/events/annotation-layer-rendered-event';\nexport * from './lib/events/attachment-loaded-event';\nexport * from './lib/events/file-input-changed';\nexport * from './lib/events/find-result';\nexport * from './lib/events/invalid-pdf-exception';\nexport * from './lib/events/layers-loaded-event';\nexport * from './lib/events/outline-loaded-event';\nexport * from './lib/events/page-number-change';\nexport * from './lib/events/page-render-event';\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/events/toggle-sidebar-event';\nexport * from './lib/events/xfa-layer-rendered-event';\nexport * from './lib/ngx-extended-pdf-viewer.component';\nexport * from './lib/services/ios-canvas-optimization.service';\nexport * from './lib/ngx-extended-pdf-viewer.module';\nexport * from './lib/ngx-extended-pdf-viewer.service';\nexport * from './lib/ngx-keyboard-manager.service';\nexport * from './lib/options/annotation-layer-builder';\nexport * from './lib/options/editor-annotations';\nexport * from './lib/options/link-target';\nexport * from './lib/options/ngx-console';\nexport * from './lib/options/optional_content_config';\nexport * from './lib/options/password-prompt';\nexport * from './lib/options/pdf-annotation-storage';\nexport * from './lib/options/pdf-cursor-tools';\nexport * from './lib/options/pdf-default-options';\nexport * from './lib/options/pdf-event-bus';\nexport * from './lib/options/pdf-page-view-port';\nexport * from './lib/options/pdf-print-range';\nexport * from './lib/options/pdf-print-service';\nexport * from './lib/options/pdf-scroll-mode';\nexport * from './lib/options/pdf-sidebar-views';\nexport * from './lib/options/pdf-spread-mode';\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/pdf-viewer-application-options';\nexport * from './lib/options/pdf_attachment_viewer';\nexport * from './lib/options/pdf_outline_viewer';\nexport * from './lib/options/pdf_page_view';\nexport * from './lib/options/rendered-textlayer-highlights';\nexport * from './lib/options/service-worker-options';\nexport * from './lib/options/spread-type';\nexport * from './lib/options/text-layer-builder';\nexport * from './lib/options/verbosity-level';\nexport * from './lib/options/zoom-type';\nexport * from './lib/pdf-csp-policy.service';\nexport * from './lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component';\nexport * from './lib/pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component';\nexport * from './lib/pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component';\nexport * from './lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nexport * from './lib/pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-dialog.component';\nexport * 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/pdf-script-loader.service';\nexport * from './lib/responsive-visibility';\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-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-book-mode/pdf-book-mode.component';\nexport * from './lib/toolbar/pdf-comment-editor/pdf-comment-editor.component';\nexport * from './lib/toolbar/pdf-context-menu/pdf-context-menu.component';\nexport * from './lib/toolbar/pdf-document-properties/pdf-document-properties.component';\nexport * from './lib/toolbar/pdf-download/pdf-download.component';\nexport * from './lib/toolbar/pdf-draw-editor/pdf-draw-editor.component';\nexport * from './lib/toolbar/pdf-editor-signature/pdf-editor-signature.component';\nexport * from './lib/toolbar/pdf-editor/pdf-editor.component';\nexport * from './lib/toolbar/pdf-even-spread/pdf-even-spread.component';\nexport * from './lib/toolbar/pdf-find-button/pdf-find-button.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-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-find-multiple/pdf-find-multiple.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.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-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.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-highlight-editor/pdf-highlight-editor.component';\nexport * from './lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component';\nexport * from './lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component';\nexport * from './lib/toolbar/pdf-move-down/pdf-move-down.component';\nexport * from './lib/toolbar/pdf-move-up/pdf-move-up.component';\nexport * from './lib/toolbar/pdf-no-spread/pdf-no-spread.component';\nexport * from './lib/toolbar/pdf-odd-spread/pdf-odd-spread.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-shy-button/pdf-shy-button.component';\nexport * from './lib/toolbar/pdf-single-page-mode/pdf-single-page-mode.component';\nexport * from './lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component';\nexport * from './lib/toolbar/pdf-text-editor/pdf-text-editor.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-vertical-scroll-button/pdf-vertical-scroll-mode.component';\nexport * from './lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.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.PDFNotificationService","i2.PdfFindNextComponent","i3.PdfFindPreviousComponent","i4.PdfSearchInputFieldComponent","i2.PdfFindbarMessageContainerComponent","i3.PdfFindEntireWordComponent","i4.PdfFindHighlightAllComponent","i5.PdfFindInputAreaComponent","i6.PdfFindMatchCaseComponent","i7.PdfFindMultipleComponent","i8.PdfFindRegExpComponent","i9.PdfFindResultsCountComponent","i10.PdfMatchDiacriticsComponent","i2.PdfShyButtonService","i3.NgxExtendedPdfViewerService","i4","i5.NegativeResponsiveCSSClassPipe","i2.PdfSidebarContentComponent","i3.PdfSidebarToolbarComponent","i1.PdfShyButtonService","i3.PDFNotificationService","i4.PdfCspPolicyService","i1.PdfShyButtonComponent","i2.ResponsiveCSSClassPipe","i2.FocusManagementService","i3.PdfShyButtonComponent","i4.ResponsiveCSSClassPipe","i2.PositioningService","i3.FocusManagementService","i4.PdfShyButtonComponent","i5.ResponsiveCSSClassPipe","i1.PdfCommentEditorComponent","i2.PdfDrawEditorComponent","i3.PdfEditorSignatureComponent","i4.PdfHighlightEditorComponent","i5.PdfStampEditorComponent","i6.PdfTextEditorComponent","i2.PdfShyButtonComponent","i3.ResponsiveCSSClassPipe","i1.ResponsiveCSSClassPipe","i1.PdfFirstPageComponent","i2.PdfLastPageComponent","i3.PdfNextPageComponent","i4.PdfPageNumberComponent","i5.PdfPreviousPageComponent","i6.ResponsiveCSSClassPipe","i1.NgxExtendedPdfViewerService","i1","i1.PdfZoomDropdownComponent","i2.PdfZoomInComponent","i3.PdfZoomOutComponent","i2.PdfBookModeComponent","i3.PdfDocumentPropertiesComponent","i4.PdfDownloadComponent","i5.PdfEditorComponent","i6.PdfEvenSpreadComponent","i7.PdfFindButtonComponent","i8.PdfHandToolComponent","i9.PdfHorizontalScrollComponent","i10.PdfInfiniteScrollComponent","i11.PdfMoveDownComponent","i12.PdfMoveUpComponent","i13.PdfNoSpreadComponent","i14.PdfOddSpreadComponent","i15.PdfOpenFileComponent","i16.PdfPagingAreaComponent","i17.PdfPresentationModeComponent","i18.PdfPrintComponent","i19.PdfRotatePageCwComponent","i20.PdfRotatePageCcwComponent","i21.PdfSelectToolComponent","i22.PdfSinglePageModeComponent","i23.PdfToggleSecondaryToolbarComponent","i24.PdfToggleSidebarComponent","i25.PdfVerticalScrollModeComponent","i26.PdfWrappedScrollModeComponent","i27.PdfZoomToolbarComponent","i2","i4.PDFScriptLoaderService","i5.NgxKeyboardManagerService","i6.PdfCspPolicyService","i7.IOSCanvasOptimizationService","i8.DynamicCssComponent","i9.PdfAcroformDefaultThemeComponent","i10.AddSignatureDialogComponent","i11.PdfContextMenuComponent","i12.PdfDarkThemeComponent","i13.PdfAltTextDialogComponent","i14.PdfAltTextSettingsDialogComponent","i15.PdfDocumentPropertiesDialogComponent","i16.PdfDummyComponentsComponent","i17.EditSignatureDialogComponent","i18.PdfErrorMessageComponent","i19.PdfFindbarComponent","i20.PdfLightThemeComponent","i21.PdfPasswordDialogComponent","i22.PdfPreparePrintingDialogComponent","i23.PdfSecondaryToolbarComponent","i24.PdfSidebarComponent","i25.PdfToolbarComponent","i26.TranslatePipe","PdfAddSignatureDialogComponent","PdfEditSignatureDialogComponent"],"mappings":"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"}