ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
1 lines • 638 kB
Source Map (JSON)
{"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/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/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/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-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-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-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-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/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}\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};\n\nexport type AnnotationEditorTypeValue = -1 | 0 | 3 | 9 | 13 | 15;\n\nexport type BezierPath = {\n bezier: Array<number>;\n points: Array<number>;\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: Array<BezierPath>;\n pageIndex: number;\n rect: Array<number>; // [left, bottom, right, top]\n rotation: 0 | 90 | 180 | 270; // in degrees\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};\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};\n\nexport type HighlightEditorAnnotation = {\n annotationType: 9;\n color: Array<number>; // an array of three integer numbers\n rect: Array<number>; // [left, bottom, right, top]\n pageIndex: number;\n rotation: 0 | 90 | 180 | 270; // in degrees\n};\n\nexport type EditorAnnotation = InkEditorAnnotation | FreeTextEditorAnnotation | StampEditorAnnotation | HighlightEditorAnnotation;\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 = '4.10.718';\nexport const pdfjsBleedingEdgeVersion = '4.10.718';\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\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 // Create a temporary WebGL context\n const canvas = document.createElement('canvas');\n const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n let maxTextureSize;\n if (gl instanceof WebGLRenderingContext) {\n maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n } else {\n maxTextureSize = 4096;\n }\n // Get available device RAM (in MB)\n function getAvailableMemoryMB(): number {\n if ('deviceMemory' in navigator) {\n return (navigator.deviceMemory as number) * 1024; // Convert GB to MB\n }\n if (window.performance && 'memory' in window.performance) {\n return (window.performance.memory as any).jsHeapSizeLimit / 1024 / 1024; // Only works on Chrome, Firefox, and Edgewindow.performance.memory.jsHeapSizeLimit / 1024 / 1024; // Only works on Chrome\n }\n return 4096; // Default to 4GB if unknown\n }\n\n const availableMemoryMB = getAvailableMemoryMB();\n\n // Conservative formula: Scale by square root of available memory\n let estimatedSafeSize = Math.floor(Math.sqrt((availableMemoryMB * 1024 * 1024) / 6));\n\n // Apply platform-specific limits\n const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n const isHighEndDesktop = availableMemoryMB > 12000; // Assume high-end desktops have >12GB RAM\n\n if (isIOS) {\n estimatedSafeSize = Math.min(estimatedSafeSize, 4096); // iOS Safari memory limits\n } else if (isMobile) {\n estimatedSafeSize = Math.min(estimatedSafeSize, 4096); // Most mobile devices\n } else if (isHighEndDesktop) {\n estimatedSafeSize = Math.min(estimatedSafeSize, 8192); // Allow larger sizes for desktops\n } else {\n estimatedSafeSize = Math.min(estimatedSafeSize, 6000); // Mid-range desktops\n }\n\n // Final limit based on GPU and estimated memory safety\n const maxWidth = Math.min(maxTextureSize, estimatedSafeSize);\n return maxWidth * maxWidth;\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 enablePermissions: false,\n docBaseUrl: '',\n enablePrintAutoRotate: true,\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\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: true,\n defaultCacheSize: 50,\n passwordPrompt: undefined,\n enableHWA: true, // enable hardware acceleration. Active since pdf.js 4.4.\n positionPopupDialogsWithJavaScript: true,\n};\n","import { pdfDefaultOptions } from '../options/pdf-default-options';\n\nexport class PositioningService {\n public positionPopupBelowItsButton(buttonId: string, popupId: string) {\n if (!pdfDefaultOptions.positionPopupDialogsWithJavaScript) {\n return;\n }\n setTimeout(() => {\n const visibleButton = Array.from(document.querySelectorAll(`#${buttonId}`)).find((el: HTMLElement) => el.offsetParent !== null);\n if (visibleButton) {\n const popup = document.querySelector(`#${popupId}`);\n if (popup instanceof HTMLElement) {\n const popupContainer = popup.offsetParent as HTMLElement;\n if (popupContainer) {\n const buttonRect = visibleButton.getBoundingClientRect();\n const containerRect = popupContainer.getBoundingClientRect();\n\n const width = buttonRect.width;\n const doorhangerOffset = 17;\n\n // Detect text direction\n const isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n let doorHangerRight = isRTL;\n if (popup.classList.contains('doorHangerRight')) {\n doorHangerRight = !isRTL;\n }\n\n // Apply styles\n popup.style.position = 'absolute';\n popup.style.display = 'block';\n\n // support the attribute 'mobileFriendlyZoom' correctly\n popup.style.transformOrigin = doorHangerRight ? 'top right' : 'top left';\n\n if (!doorHangerRight) {\n // For RTL languages, use 'left' property\n // also use the 'left' property for the findbar in LTR languages\n const left = buttonRect.left - containerRect.left + width / 2 - doorhangerOffset;\n\n popup.style.left = `${left}px`;\n popup.style.right = '';\n } else {\n // For LTR, use 'right' property\n const right = containerRect.right - buttonRect.right + width / 2 - doorhangerOffset;\n popup.style.right = `${right}px`; // 109\n popup.style.left = '';\n }\n\n const toolbarContainer = document.querySelector('#toolbarContainer');\n if (toolbarContainer instanceof HTMLElement) {\n const toolbarContainerRect = toolbarContainer.getBoundingClientRect();\n const top = toolbarContainerRect.bottom - containerRect.top + 4;\n popup.style.top = `${top}px`; // 92\n }\n }\n }\n }\n });\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}\n\nexport interface IPDFViewer {\n maxZoom: number;\n minZoom: number;\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): 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 'primaryEditorFreeText',\n 'primaryEditorHighlight',\n 'primaryEditorInk',\n 'primaryEditorStamp',\n 'editorModeButtons',\n 'editorNone',\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 '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, IPDFViewerApplication } from '../public_api';\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(key: string | HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement, value: { value: string }): void {\n if (!this.formData) {\n this.formData = {};\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 }, fullKey: string) {\n let change = false;\n if (field instanceof HTMLInputElement && field.type === 'checkbox') {\n const exportValue = field.getAttribute('exportvalue');\n if (exportValue) {\n if (value.value) {\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] !== value.value) {\n this.formData[fullKey] = value.value;\n change = true;\n }\n } else if (field instanceof HTMLInputElement && field.type === 'radio') {\n const exportValue = field.getAttribute('exportvalue') ?? field.getAttribute('xfaon');\n if (value.value) {\n if (this.formData[fullKey] !== exportValue) {\n this.formData[fullKey] = exportValue;\n change = true;\n }\n }\n } else if (this.formData[fullKey] !== value.value) {\n this.formData[fullKey] = value.value;\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\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 fieldId = this.findFormIdFromFieldName(key);\n if (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 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 findFormIdFromFieldName(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 > 1) {\n console.log(\n `More than one field name matches the field name ${fieldName}. Please use the one of these qualified field names:`,\n matchingEntries.map((f) => f[1]),\n );\n console.log(\n 'ngx-extended-pdf-viewer uses the first matching field (which may or may not be the topmost field on your PDF form): ' + matchingEntries[0][0],\n );\n } else if (matchingEntries.length === 0) {\n console.log(\"Couldn't find the field \" + fieldName);\n return undefined;\n }\n return matchingEntries[0][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, 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 { 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(private readonly rendererFactory: RendererFactory2, notificationService: PDFNotificationService) {\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 if (!currentSnippet.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 }\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 public getSerializedAnnotations(): EditorAnnotation[] | null | undefined {\n return this.PDFViewerApplication?.pdfViewer.getSerializedAnnotations();\n }\n\n public async addEditorAnnotation(serializedAnnotation: string | EditorAnnotation): Promise<void> {\n await this.PDFViewerApplication?.pdfViewer.addEditorAnnotation(serializedAnnotation);\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 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 };\n this.addEditorAnnotation(stampAnnotation);\n await this.sleep(10);\n this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\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: string | number | undefined, 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","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 { 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]) {\n if (!this.con || !this.el) {\n this.initElements();\n }\n if (!this.con || !this.el) {\n // dummy implementation for server-side rendering\n return 1;\n }\n this.el.style.width = this.sample + unit;\n document.body.appendChild(this.con);\n const dimension = this.el.getBoundingClientRect();\n this.con.parentNode!.removeChild(this.con);\n this.pxPerUnitCache[unit] = dimension.width / this.sample;\n }\n return this.pxPerUnitCache[unit];\n }\n\n public static toPx(length): number {\n const unitRe = /^\\s*([+-]?[\\d\\.]*)\\s*(.*)\\s*$/i; // NOSONAR\n const match = unitRe.exec(length);\n if (match != null && match.length > 2) {\n const bare = match[1] === '';\n const val = bare ? 1 : Number(match[1]);\n const unit = match[2];\n const valid = !isNaN(val) && unit;\n if (valid) {\n return unit === 'px' ? val : this.pxPerUnit(unit) * val;\n }\n }\n throw new TypeError('Error parsing length');\n }\n}\n","import { 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-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-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 id=\"sidebarContainer\" [style.top]=\"sidebarPositionTop\">\n <div id=\"additionalSidebarContainer\" class=\"hidden\" [class.hidden]=\"hideSidebarToolbar\">\n <pdf-sidebar-toolbar [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"></pdf-sidebar-toolbar>\n </div>\n <pdf-sidebar-content\n [customThumbnail]=\"customThumbnail\"\n (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n [hideSidebarToolbar]=\"hideSidebarToolbar\"\n [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n ></pdf-sidebar-content>\n <div id=\"sidebarResizer\" class=\"hidden\"></div>\n </div>\n</ng-template>\n","import { 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 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\" #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 { 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 private notificationService: PDFNotificationService,\n private cdr: ChangeDetectorRef,\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 this.isSelected = mode === 15;\n this.cdr.detectChanges();\n });\n });\n }\n\n public onClick(event: PointerEvent): void {\n let button = event.target;\n while (button && button instanceof Element && !(button instanceof HTMLButtonElement)) {\n button = button.parentElement;\n }\n\n if (button instanceof HTMLButtonElement) {\n // #2817 this is a workaround for when the button is initially hidden.\n // In that case, the dummy component gets the click listener.\n // As a quick work around, let's simply call the click listener of the dummy component.\n if (button.id === 'primaryEditorInk' && document.getElementById('primaryEditorInk') !== button) {\n document.getElementById('primaryEditorInk')?.click();\n }\n if (button.id !== 'primaryEditorInk') {\n document.getElementById('primaryEditorInk')?.click();\n }\n const positioningService = new PositioningService();\n positioningService.positionPopupBelowItsButton('primaryEditorInk', 'editorInkParamsToolbar');\n }\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 [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, Input, effect } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-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-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 ) {\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 this.isSelected = mode === 9;\n this.cdr.detectChanges();\n });\n });\n }\n\n public onClick(event: PointerEvent): void {\n let button = event.target;\n while (button && button instanceof Element && !(button instanceof HTMLButtonElement)) {\n button = button.parentElement;\n }\n if (button instanceof HTMLButtonElement) {\n // #2817 this is a workaround for when the button is initially hidden.\n // In that case, the dummy component gets the click listener.\n // As a quick work around, let's simply call the click listener of the dummy component.\n if (button.id === 'primaryEditorHighlight' && document.getElementById('primaryEditorHighlight') !== button) {\n document.getElementById('primaryEditorHighlight')?.click();\n }\n if (button.id !== 'primaryEditorHighlight') {\n document.getElementById('primaryEditorHighlight')?.click();\n }\n const positioningService = new PositioningService();\n positioningService.positionPopupBelowItsButton('primaryEditorHighlight', 'editorHighlightParamsToolbar');\n }\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 [order]=\"4000\"\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 { 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 ) {\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 this.isSelected = mode === 13;\n this.cdr.detectChanges();\n });\n });\n }\n\n public onClick(event: PointerEvent): void {\n let button = event.target;\n while (button && button instanceof Element && !(button instanceof HTMLButtonElement)) {\n button = button.parentElement;\n }\n if (button instanceof HTMLButtonElement) {\n // #2817 this is a workaround for when the button is initially hidden.\n // In that case, the dummy component gets the click listener.\n // As a quick work around, let's simply call the click listener of the dummy component.\n if (button.id === 'primaryEditorStamp' && document.getElementById('primaryEditorStamp') !== button) {\n document.getElementById('primaryEditorStamp')?.click();\n }\n if (button.id !== 'primaryEditorStamp') {\n document.getElementById('primaryEditorStamp')?.click();\n }\n const positioningService = new PositioningService();\n positioningService.positionPopupBelowItsButton('primaryEditorStamp', 'editorStampParamsToolbar');\n }\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\" [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 { 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 ) {\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 this.isSelected = mode === 3;\n this.cdr.detectChanges();\n });\n });\n }\n\n public onClick(event: PointerEvent): void {\n let button = event.target;\n while (button && button instanceof Element && !(button instanceof HTMLButtonElement)) {\n button = button.parentElement;\n }\n if (button instanceof HTMLButtonElement) {\n // #2817 this is a workaround for when the button is initially hidden.\n // In that case, the dummy component gets the click listener.\n // As a quick work around, let's simply call the click listener of the dummy component.\n if (button.id === 'primaryEditorFreeText' && document.getElementById('primaryEditorFreeText') !== button) {\n document.getElementById('primaryEditorFreeText')?.click();\n }\n if (button.id !== 'primaryEditorFreeText') {\n document.getElementById('primaryEditorFreeText')?.click();\n }\n const positioningService = new PositioningService();\n positioningService.positionPopupBelowItsButton('primaryEditorFreeText', 'editorFreeTextParamsToolbar');\n }\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 [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 showDrawEditor: ResponsiveVisibility = true;\n\n @Input()\n public showHighlightEditor: ResponsiveVisibility = true;\n\n @Input()\n public showTextEditor: ResponsiveVisibility = true;\n\n @Input()\n public showStampEditor: ResponsiveVisibility = true;\n}\n","@if (!!showHighlightEditor || !!showStampEditor || !!showDrawEditor || !!showTextEditor) {\n<div id=\"editorModeButtons\" class=\"splitToolbarButton toggled\" role=\"radiogroup\">\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>\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-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]=\"false\"\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]=\"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= '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 { 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]=\"false\"\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]=\"false\"\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]=\"false\"\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 id=\"scaleSelectContainer\" [class]=\"showZoomDropdown | responsiveCSSClass : 'hiddenTinyView'\">\n <select id=\"scaleSelect\" title=\"Zoom\" data-l10n-id=\"pdfjs-zoom-select\" #sizeSelector>\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 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 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 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 class=\"toolbar\" [class.invisible]=\"!primaryMenuVisible\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\" [style.transformOrigin]=\"'left center'\"\n [style.width]=\"toolbarWidth\" [style.marginTop]=\"toolbarMarginTop\">\n <div id=\"toolbarContainer\">\n <ng-content *ngTemplateOutlet=\"customToolbar ? customToolbar : defaultToolbar\"></ng-content>\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultToolbar>\n <div id=\"toolbarViewer\">\n <div id=\"toolbarViewerLeft\">\n <pdf-toggle-sidebar [show]=\"showSidebarButton\" [sidebarVisible]=\"sidebarVisible\"></pdf-toggle-sidebar>\n <pdf-find-button [showFindButton]=\"showFindButton\" [textLayer]=\"textLayer\" [findbarVisible]=\"findbarVisible\"\n [hasTextLayer]=\"hasTextLayer\"></pdf-find-button>\n <pdf-paging-area [showPagingButtons]=\"showPagingButtons\"\n [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons\"\n [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons\" [showPageNumber]=\"showPageNumber\"\n [showPageLabel]=\"showPageLabel\"></pdf-paging-area>\n </div>\n <pdf-zoom-toolbar id=\"toolbarViewerMiddleContainer\" [showZoomButtons]=\"showZoomButtons\"\n [showZoomDropdown]=\"showZoomDropdown\" [zoomLevels]=\"zoomLevels\"></pdf-zoom-toolbar>\n <div id=\"toolbarViewerRight\">\n <pdf-document-properties [show]=\"showPropertiesButton\"></pdf-document-properties>\n <pdf-no-spread [scrollMode]=\"scrollMode\" [show]=\"showSpreadButton\"></pdf-no-spread>\n <pdf-odd-spread [scrollMode]=\"scrollMode\" [show]=\"showSpreadButton\"></pdf-odd-spread>\n <pdf-even-spread [scrollMode]=\"scrollMode\" [show]=\"showSpreadButton\"></pdf-even-spread>\n <pdf-single-page-mode [show]=\"showSinglePageModeButton\" [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\" [scrollMode]=\"scrollMode\"></pdf-single-page-mode>\n <pdf-vertical-scroll-mode [show]=\"showVerticalScrollButton\" [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\" [scrollMode]=\"scrollMode\"></pdf-vertical-scroll-mode>\n <pdf-horizontal-scroll [show]=\"showHorizontalScrollButton\" [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\" [scrollMode]=\"scrollMode\"></pdf-horizontal-scroll>\n <pdf-wrapped-scroll-mode [show]=\"showWrappedScrollButton\" [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\" [scrollMode]=\"scrollMode\"></pdf-wrapped-scroll-mode>\n <pdf-infinite-scroll [show]=\"showInfiniteScrollButton\" [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\" [scrollMode]=\"scrollMode\"></pdf-infinite-scroll>\n <pdf-book-mode [show]=\"showBookModeButton\" [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\" [scrollMode]=\"scrollMode\"></pdf-book-mode>\n <pdf-hand-tool [showHandToolButton]=\"showHandToolButton\" [handTool]=\"handTool\"></pdf-hand-tool>\n <pdf-select-tool [showSelectToolButton]=\"showHandToolButton\" [handTool]=\"handTool\"></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 <pdf-editor [showDrawEditor]=\"showDrawEditor\" [showHighlightEditor]=\"showHighlightEditor\"\n [showTextEditor]=\"showTextEditor\" [showStampEditor]=\"showStampEditor\"></pdf-editor>\n <pdf-toggle-secondary-toolbar [showSecondaryToolbarButton]=\"showSecondaryToolbarButton\">\n </pdf-toggle-secondary-toolbar>\n </div>\n </div>\n</ng-template>","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 console.log('waiting for PDFViewerApplication to translate ' + key);\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 { 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 { 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}\n\nexport interface FormDataType {\n [fieldName: string]: null | string | number | boolean | string[];\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 if (this.initialAngularFormData === undefined) {\n this.initialAngularFormData = formData;\n }\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: string | number | undefined;\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 showDrawEditor: ResponsiveVisibility = 'xxl';\n\n @Input()\n public showHighlightEditor: 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 @Input()\n public relativeCoordsOptions: Object = {};\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 }) {\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 = '#e8e8eb';\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 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 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 = !this.isIOS();\n\n @Input()\n public set handTool(handTool: boolean) {\n if (this.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: string | number | undefined = undefined;\n\n @Output()\n public zoomChange = new EventEmitter<string | number | undefined>();\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 /**\n * This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n * This attribute is a string with a percent character at the end (e.g. \"150%\").\n */\n @Input()\n public set mobileFriendlyZoom(zoom: string) {\n // tslint:disable-next-line:triple-equals - the type conversion is intended\n if (zoom == 'true') {\n zoom = '150%';\n // tslint:disable-next-line:triple-equals - the type conversion is intended\n } else if (zoom == 'false' || zoom === undefined || zoom === null) {\n zoom = '100%';\n }\n this._mobileFriendlyZoom = zoom;\n let factor = 1;\n if (!String(zoom).includes('%')) {\n zoom = 100 * Number(zoom) + '%';\n }\n factor = Number((zoom || '100').replace('%', '')) / 100;\n this.mobileFriendlyZoomScale = factor;\n this.toolbarWidth = (100 / factor).toString() + '%';\n this.toolbarMarginTop = (factor - 1) * 16 + 'px';\n\n setTimeout(() => this.calcViewerPositionTop());\n }\n\n 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 if (top < 33) {\n this.viewerPositionTop = '33px';\n } else {\n this.viewerPositionTop = top + 'px';\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 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 public isIOS(): boolean {\n if (typeof window === 'undefined') {\n // server-side rendering\n return false;\n }\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||\n // iPad on iOS 13 detection\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\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 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 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 && this.root.nativeElement && this.root.nativeElement.offsetParent !== null) {\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 for (let i = 0; i < sorted.length; i++) {\n sorted[i].element.tabIndex = this.startTabindex + i;\n }\n }\n }\n\n private showElementsRecursively(root: Element): void {\n 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 if (copy instanceof HTMLButtonElement || copy instanceof HTMLAnchorElement || copy instanceof HTMLInputElement || copy instanceof HTMLSelectElement) {\n const rect = copy.getBoundingClientRect();\n const elementAndPos = {\n element: original,\n x: Math.round(rect.left),\n y: Math.round(rect.top),\n } as ElementAndPosition;\n elements.push(elementAndPos);\n } else if (copy.childElementCount > 0) {\n for (let i = 0; i < copy.childElementCount; i++) {\n const c = copy.children.item(i);\n const o = original.children.item(i);\n if (c && o) {\n elements = this.collectElementPositions(c, o, elements);\n }\n }\n }\n return elements;\n }\n\n private 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 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 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 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 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('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 });\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 }\n if (currentPageLabel !== this.pageLabel) {\n this.pageLabelChange.emit(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\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.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","@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 #DynamicCssComponent [zoom]=\"mobileFriendlyZoomScale\"></pdf-dynamic-css>\n<ng-content *ngTemplateOutlet=\"customPdfViewer ? customPdfViewer : defaultPdfViewer\"></ng-content>\n\n<ng-template #defaultPdfViewer>\n <div class=\"zoom\" [style.height]=\"minHeight ? minHeight : height\" #root>\n <div class=\"html\">\n <div class=\"body pdf-js-version-{{ majorMinorPdfJsVersion }}\" [style.backgroundColor]=\"backgroundColor\">\n <div id=\"outerContainer\">\n @if (showFreeFloatingBar) {\n <div class=\"free-floating-bar\">\n <ng-content *ngTemplateOutlet=\"customFreeFloatingBar ? customFreeFloatingBar : defaultFreeFloatingBar\">\n </ng-content>\n </div>\n }\n <pdf-sidebar #pdfsidebar [sidebarVisible]=\"sidebarVisible || false\" [showSidebarButton]=\"showSidebarButton\"\n [customSidebar]=\"customSidebar\" [customThumbnail]=\"customThumbnail\"\n (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\" [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n [sidebarPositionTop]=\"sidebarPositionTop\">\n </pdf-sidebar>\n <div id=\"mainContainer\" [class.toolbar-hidden]=\"!primaryMenuVisible\">\n <pdf-dummy-components></pdf-dummy-components>\n\n <pdf-toolbar (onToolbarLoaded)=\"onToolbarLoaded($event)\" [sidebarVisible]=\"sidebarVisible\"\n [class.server-side-rendering]=\"serverSideRendering\" [customToolbar]=\"customToolbar\"\n [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\" [(pageViewMode)]=\"pageViewMode\"\n [primaryMenuVisible]=\"primaryMenuVisible\" [scrollMode]=\"scrollMode ?? 0\"\n [showPropertiesButton]=\"showPropertiesButton\" [showBookModeButton]=\"showBookModeButton\"\n [showDownloadButton]=\"showDownloadButton\" [showDrawEditor]=\"showDrawEditor\"\n [showHighlightEditor]=\"showHighlightEditor\" [showFindButton]=\"showFindButton\"\n [showHandToolButton]=\"showHandToolButton\" [handTool]=\"handTool\"\n [showHorizontalScrollButton]=\"showHorizontalScrollButton\"\n [showInfiniteScrollButton]=\"showInfiniteScrollButton\" [showOpenFileButton]=\"showOpenFileButton\"\n [showPagingButtons]=\"showPagingButtons\" [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons\"\n [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons\" [showPageNumber]=\"showPageNumber\"\n [showPageLabel]=\"showPageLabel\"\n [showPresentationModeButton]=\"showPresentationModeButton && pageViewMode !== 'book'\"\n [showPrintButton]=\"enablePrint ? showPrintButton : false\" [showRotateCwButton]=\"showRotateCwButton\"\n [showRotateCcwButton]=\"showRotateCcwButton\"\n [showSecondaryToolbarButton]=\"showSecondaryToolbarButton && !service.secondaryMenuIsEmpty\"\n [showSidebarButton]=\"showSidebarButton\" [showSinglePageModeButton]=\"showSinglePageModeButton\"\n [showSpreadButton]=\"showSpreadButton\" [showStampEditor]=\"showStampEditor\"\n [showTextEditor]=\"showTextEditor\" [showVerticalScrollButton]=\"showVerticalScrollButton\"\n [showWrappedScrollButton]=\"showWrappedScrollButton\"\n [showZoomButtons]=\"showZoomButtons && pageViewMode !== 'book'\" [showZoomDropdown]=\"showZoomDropdown\"\n [spread]=\"spread\" [textLayer]=\"textLayer\" [toolbarMarginTop]=\"toolbarMarginTop\"\n [toolbarWidth]=\"toolbarWidth\" [zoomLevels]=\"zoomLevels\" [findbarVisible]=\"findbarVisible\"\n [hasTextLayer]=\"hasTextLayer\"></pdf-toolbar>\n\n <div class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorHighlightParamsToolbar\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\">\n <div id=\"highlightParamsToolbarContainer\" class=\"editorParamsToolbarContainer\">\n <div id=\"editorHighlightColorPicker\" class=\"colorPicker\">\n <span id=\"highlightColorPickerLabel\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-highlight-colorpicker-label\">Highlight color</span>\n </div>\n <div id=\"editorHighlightThickness\">\n <label for=\"editorFreeHighlightThickness\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-free-highlight-thickness-input\">Thickness</label>\n <div class=\"thicknessPicker\">\n <input type=\"range\" id=\"editorFreeHighlightThickness\" class=\"editorParamsSlider\"\n data-l10n-id=\"pdfjs-editor-free-highlight-thickness-title\" value=\"12\" min=\"8\" max=\"24\" step=\"1\" />\n </div>\n </div>\n <div id=\"editorHighlightVisibility\">\n <div class=\"divider\"></div>\n <div class=\"toggler\">\n <label for=\"editorHighlightShowAll\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-highlight-show-all-button-label\">Show all</label>\n <button id=\"editorHighlightShowAll\" class=\"toggle-button\"\n data-l10n-id=\"pdfjs-editor-highlight-show-all-button\" aria-pressed=\"true\"></button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorFreeTextParamsToolbar\"\n [class.server-side-rendering]=\"serverSideRendering\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\">\n <div class=\"editorParamsToolbarContainer\">\n <div class=\"editorParamsSetter\">\n <label for=\"editorFreeTextColor\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-free-text-color-input\">Font Color</label>\n <input type=\"color\" id=\"editorFreeTextColor\" class=\"editorParamsColor\" />\n </div>\n <div class=\"editorParamsSetter\">\n <label for=\"editorFreeTextFontSize\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-free-text-size-input\">Font Size</label>\n <input type=\"range\" id=\"editorFreeTextFontSize\" class=\"editorParamsSlider\" value=\"10\" min=\"5\"\n max=\"100\" step=\"1\" />\n </div>\n </div>\n </div>\n\n <div class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorStampParamsToolbar\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\">\n <div class=\"editorParamsToolbarContainer\">\n <button id=\"editorStampAddImage\" class=\"secondaryToolbarButton\" title=\"Add image\"\n data-l10n-id=\"pdfjs-editor-stamp-add-image-button\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\" class=\"align-image-to-text\">\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 </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 class=\"editorParamsToolbar hidden doorHangerRight\" id=\"editorInkParamsToolbar\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n [class.server-side-rendering]=\"serverSideRendering\">\n <div class=\"editorParamsToolbarContainer\">\n <div class=\"editorParamsSetter\">\n <label for=\"editorInkColor\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-ink-color-input\">Color</label>\n <input type=\"color\" id=\"editorInkColor\" class=\"editorParamsColor\" />\n </div>\n <div class=\"editorParamsSetter\">\n <label for=\"editorInkThickness\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-ink-thickness-input\">Thickness</label>\n <input type=\"range\" id=\"editorInkThickness\" class=\"editorParamsSlider\" value=\"1\" min=\"1\" max=\"20\"\n step=\"1\" />\n </div>\n <div class=\"editorParamsSetter\">\n <label for=\"editorInkOpacity\" class=\"editorParamsLabel\"\n data-l10n-id=\"pdfjs-editor-ink-opacity-input\">Opacity</label>\n <input type=\"range\" id=\"editorInkOpacity\" class=\"editorParamsSlider\" value=\"1\" min=\"0.05\" max=\"1\"\n step=\"0.05\" />\n </div>\n </div>\n </div>\n\n <pdf-secondary-toolbar #pdfSecondaryToolbarComponent [class.server-side-rendering]=\"serverSideRendering\"\n [customSecondaryToolbar]=\"customSecondaryToolbar\" [secondaryToolbarTop]=\"secondaryToolbarTop\"\n [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\" (spreadChange)=\"onSpreadChange($event)\"\n [localizationInitialized]=\"localizationInitialized\">\n </pdf-secondary-toolbar>\n\n <pdf-findbar [class.server-side-rendering]=\"serverSideRendering\" [findbarLeft]=\"findbarLeft\"\n [findbarTop]=\"findbarTop\" [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n [showFindButton]=\"showFindButton || false\" [customFindbarInputArea]=\"customFindbarInputArea\"\n [customFindbarButtons]=\"customFindbarButtons\" [showFindEntireWord]=\"showFindEntireWord\"\n [showFindHighlightAll]=\"showFindHighlightAll\" [showFindMatchDiacritics]=\"showFindMatchDiacritics\"\n [showFindMatchCase]=\"showFindMatchCase\" [showFindMultiple]=\"showFindMultiple\"\n [showFindRegexp]=\"showFindRegexp\" [showFindMessages]=\"showFindMessages\"\n [showFindResultsCount]=\"showFindResultsCount\">\n </pdf-findbar>\n\n <pdf-context-menu></pdf-context-menu>\n\n <div id=\"viewerContainer\" [style.top]=\"viewerPositionTop\" [style.backgroundColor]=\"backgroundColor\">\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 id=\"viewer\" class=\"pdfViewer\" (dblclick)=\"zoomToPageWidth($event)\"></div>\n </div>\n <pdf-error-message></pdf-error-message>\n </div>\n <!-- mainContainer -->\n\n <div id=\"dialogContainer\">\n <pdf-password-dialog></pdf-password-dialog>\n <pdf-document-properties-dialog></pdf-document-properties-dialog>\n <pdf-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 </div>\n <!-- dialogContainer -->\n </div>\n <div id=\"editorUndoBar\" class=\"messageBar\" role=\"status\" aria-labelledby=\"editorUndoBarMessage\" tabindex=\"-1\"\n hidden>\n <div>\n <div>\n <span id=\"editorUndoBarMessage\" class=\"description\"></span>\n </div>\n <button id=\"editorUndoBarUndoButton\" class=\"undoButton\" type=\"button\" tabindex=\"0\" title=\"Undo\"\n data-l10n-id=\"pdfjs-editor-undo-bar-undo-button\">\n <span data-l10n-id=\"pdfjs-editor-undo-bar-undo-button-label\">Undo</span>\n </button>\n <button id=\"editorUndoBarCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\" title=\"Close\"\n data-l10n-id=\"pdfjs-editor-undo-bar-close-button\">\n <span data-l10n-id=\"pdfjs-editor-undo-bar-close-button-label\">Close</span>\n </button>\n </div>\n </div> <!-- editorUndoBar -->\n <!-- outerContainer -->\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultFreeFloatingBar> </ng-template>","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 { 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 { 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 { 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 { 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 { 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 PdfBookModeComponent,\n PdfContextMenuComponent,\n PdfDarkThemeComponent,\n PdfDrawEditorComponent,\n PdfAltTextDialogComponent,\n PdfAltTextSettingsDialogComponent,\n PdfDocumentPropertiesComponent,\n PdfDocumentPropertiesDialogComponent,\n PdfDownloadComponent,\n PdfDummyComponentsComponent,\n PdfEditorComponent,\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 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 PdfAltTextDialogComponent,\n PdfAltTextSettingsDialogComponent,\n PdfBookModeComponent,\n PdfContextMenuComponent,\n PdfDarkThemeComponent,\n PdfDocumentPropertiesComponent,\n PdfDrawEditorComponent,\n PdfDocumentPropertiesDialogComponent,\n PdfDownloadComponent,\n PdfEditorComponent,\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 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 { PDFPageProxy } from './pdf-viewer-application';\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}\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","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/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/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/optional_content_config';\nexport * from './lib/options/password-prompt';\nexport * from './lib/options/pdf-default-options';\nexport * from './lib/options/pdf-page-view-port';\nexport * from './lib/options/pdf-print-range';\nexport * from './lib/options/pdf-sidebar-views';\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_page_view';\nexport * from './lib/options/rendered-textlayer-highlights';\nexport * from './lib/options/text-layer-builder';\nexport * from './lib/options/verbosity-level';\nexport * from './lib/pdf-csp-policy.service';\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-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-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/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-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.PdfShyButtonComponent","i3.ResponsiveCSSClassPipe","i2.PositioningService","i3.PdfShyButtonComponent","i4.ResponsiveCSSClassPipe","i1.PdfDrawEditorComponent","i2.PdfHighlightEditorComponent","i3.PdfStampEditorComponent","i4.PdfTextEditorComponent","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.PdfNoSpreadComponent","i12.PdfOddSpreadComponent","i13.PdfOpenFileComponent","i14.PdfPagingAreaComponent","i15.PdfPresentationModeComponent","i16.PdfPrintComponent","i17.PdfRotatePageCwComponent","i18.PdfRotatePageCcwComponent","i19.PdfSelectToolComponent","i20.PdfSinglePageModeComponent","i21.PdfToggleSecondaryToolbarComponent","i22.PdfToggleSidebarComponent","i23.PdfVerticalScrollModeComponent","i24.PdfWrappedScrollModeComponent","i25.PdfZoomToolbarComponent","i2","i4.PDFScriptLoaderService","i5.NgxKeyboardManagerService","i6.PdfCspPolicyService","i7.DynamicCssComponent","i8.PdfAcroformDefaultThemeComponent","i9.PdfContextMenuComponent","i10.PdfDarkThemeComponent","i11.PdfAltTextDialogComponent","i12.PdfAltTextSettingsDialogComponent","i13.PdfDocumentPropertiesDialogComponent","i14.PdfDummyComponentsComponent","i15.PdfErrorMessageComponent","i16.PdfFindbarComponent","i17.PdfLightThemeComponent","i18.PdfPasswordDialogComponent","i19.PdfPreparePrintingDialogComponent","i20.PdfSecondaryToolbarComponent","i21.PdfSidebarComponent","i22.PdfToolbarComponent","i23.TranslatePipe"],"mappings":"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"}