{"version":3,"file":"ngx-extended-pdf-viewer.mjs","sources":["../../../projects/ngx-extended-pdf-viewer/src/lib/options/editor-annotations.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-default-options.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/positioning.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/focus-management.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/events/find-result.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-notification-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.service.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/services/ios-canvas-optimization.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/utils/blob-conversion.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-form-support.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-keyboard-manager.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-sidebar-views.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/responsive-visibility.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/unit-to-px.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/acroform-default-theme/pdf-acroform-default-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-comment-manager-dialog/pdf-comment-manager-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-comment-manager-dialog/pdf-comment-manager-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-context-menu/pdf-context-menu.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-context-menu/pdf-context-menu.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-dark-theme/pdf-dark-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-dark-theme/pdf-dark-theme.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-error-message/pdf-error-message.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-error-message/pdf-error-message.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-findbar/pdf-findbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-light-theme/pdf-light-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/pdf-light-theme/pdf-light-theme.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-password-dialog/pdf-password-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-password-dialog/pdf-password-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-shy-button/pdf-shy-button-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/secondary-toolbar/sanitized-html.pipe.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/sidebar/pdf-sidebar/pdf-sidebar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-shy-button/pdf-shy-button.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-shy-button/pdf-shy-button.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-book-mode/pdf-book-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-book-mode/pdf-book-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-document-properties/pdf-document-properties.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-document-properties/pdf-document-properties.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-download/pdf-download.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-download/pdf-download.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-comment-editor/pdf-comment-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-comment-editor/pdf-comment-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-draw-editor/pdf-draw-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-draw-editor/pdf-draw-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor-signature/pdf-editor-signature.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor-signature/pdf-editor-signature.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-highlight-editor/pdf-highlight-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-highlight-editor/pdf-highlight-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-text-editor/pdf-text-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-text-editor/pdf-text-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor/pdf-editor.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-editor/pdf-editor.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-even-spread/pdf-even-spread.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-even-spread/pdf-even-spread.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-find-button/pdf-find-button.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-find-button/pdf-find-button.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-hand-tool/pdf-hand-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-hand-tool/pdf-hand-tool.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-page-flip-tool/pdf-page-flip-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-page-flip-tool/pdf-page-flip-tool.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-scroll-mode.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-down/pdf-move-down.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-down/pdf-move-down.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-up/pdf-move-up.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-move-up/pdf-move-up.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-no-spread/pdf-no-spread.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-no-spread/pdf-no-spread.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-odd-spread/pdf-odd-spread.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-odd-spread/pdf-odd-spread.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-open-file/pdf-open-file.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-open-file/pdf-open-file.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-paging-area.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-paging-area/pdf-paging-area.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-print/pdf-print.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-print/pdf-print.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-cw/pdf-rotate-page-cw.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-cw/pdf-rotate-page-cw.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-ccw/pdf-rotate-page-ccw.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page-ccw/pdf-rotate-page-ccw.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-select-tool/pdf-select-tool.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-select-tool/pdf-select-tool.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-single-page-mode/pdf-single-page-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-single-page-mode/pdf-single-page-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toolbar/pdf-toolbar.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-toolbar/pdf-toolbar.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/translate.pipe.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page/pdf-rotate-page.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/toolbar/pdf-rotate-page/pdf-rotate-page.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.module.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/annotation-layer-builder.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/link-target.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/password-prompt.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-spread-mode.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-document-properties-extractor.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/utils/print-range.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/utils/text-conversion.ts","../../../projects/ngx-extended-pdf-viewer/src/public_api.ts","../../../projects/ngx-extended-pdf-viewer/src/ngx-extended-pdf-viewer.ts"],"sourcesContent":["export enum AnnotationMode {\n  DISABLE = 0,\n  ENABLE = 1,\n  ENABLE_FORMS = 2,\n  ENABLE_STORAGE = 3,\n}\n\nexport enum AnnotationEditorType {\n  DISABLE = -1,\n  NONE = 0,\n  FREETEXT = 3,\n  HIGHLIGHT = 9,\n  STAMP = 13,\n  INK = 15,\n  POPUP = 16,\n  SIGNATURE = 101,\n  COMMENT = 102,\n}\n\nexport const AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\n  HIGHLIGHT_COLOR: 31,\n  HIGHLIGHT_THICKNESS: 32,\n  HIGHLIGHT_FREE: 33,\n  HIGHLIGHT_SHOW_ALL: 34,\n  HIGHLIGHT_DEFAULT_COLOR: 35,\n  DRAW_STEP: 41,\n};\n\nexport type AnnotationEditorTypeValue = -1 | 0 | 3 | 9 | 13 | 15 | 16;\n\nexport type InkPaths = {\n  lines: Array<Array<number>>; // Array of bezier curve arrays\n  points: Array<Array<number>>; // Array of raw point arrays\n};\n\nexport type InkEditorAnnotation = {\n  annotationType: 15;\n  color: Array<number>; // an array of three integer numbers\n  thickness: number;\n  opacity: number;\n  paths: InkPaths;\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer - temporary, changes every session; do not persist it\n  customId?: string; // #3225 added by ngx-extended-pdf-viewer - your own stable id (e.g. a UUID); set it before storing and it survives addEditorAnnotation()\n};\n\nexport type FreeTextEditorAnnotation = {\n  annotationType: 3;\n  color: Array<number>; // an array of three integer numbers\n  fontSize: number;\n  value: string;\n  pageIndex: number;\n  rect: Array<number>; // rect[1] is the y position; rect[2] is the x position\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer - temporary, changes every session; do not persist it\n  customId?: string; // #3225 added by ngx-extended-pdf-viewer - your own stable id (e.g. a UUID); set it before storing and it survives addEditorAnnotation()\n};\n\nexport type StampEditorAnnotation = {\n  annotationType: 13;\n  pageIndex: number;\n  bitmapUrl: string | Blob;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer - temporary, changes every session; do not persist it\n  customId?: string; // #3225 added by ngx-extended-pdf-viewer - your own stable id (e.g. a UUID); set it before storing and it survives addEditorAnnotation()\n};\n\nexport type HighlightEditorAnnotation = {\n  annotationType: 9;\n  color: Array<number>; // an array of three integer numbers\n  opacity: number;\n  thickness: number;\n  boxes?: Array<{ x: number; y: number; width: number; height: number }>; // page-relative coords (0-1 range)\n  quadPoints?: any; // Object with numeric keys containing text bounds\n  outlines?: Array<Array<number>>; // Array of coordinate arrays for highlight shapes\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer - temporary, changes every session; do not persist it\n  customId?: string; // #3225 added by ngx-extended-pdf-viewer - your own stable id (e.g. a UUID); set it before storing and it survives addEditorAnnotation()\n};\n\nexport type PopupEditorAnnotation = {\n  annotationType: 16;\n  content: string;\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer - temporary, changes every session; do not persist it\n  customId?: string; // #3225 added by ngx-extended-pdf-viewer - your own stable id (e.g. a UUID); set it before storing and it survives addEditorAnnotation()\n};\n\nexport type EditorAnnotation = InkEditorAnnotation | FreeTextEditorAnnotation | StampEditorAnnotation | HighlightEditorAnnotation | PopupEditorAnnotation;\n","import { AnnotationMode } from './editor-annotations';\n\nconst _isIE11 = typeof window === 'undefined' ? false : !!(<any>globalThis).MSInputMethodContext && !!(<any>document).documentMode;\nconst isEdge = typeof navigator === 'undefined' || /Edge\\/\\d./i.test(navigator.userAgent);\nconst needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n\nexport const pdfjsVersion = '6.1.1164';\nexport const pdfjsBleedingEdgeVersion = '6.1.1164';\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\n// #3209: a relative asset URL such as \"./assets/pdf.worker-x.min.mjs\" is\n// resolved by pdf.js (and the browser's `new Worker()`) against the current\n// route or, with a `<base href>`, gets the base applied twice — producing\n// mangled URLs like \".../crossdomainproxy//crossdomainproxy/../...\". Resolving\n// against `document.baseURI` here yields a stable absolute URL, mirroring the\n// wasmUrl (#3140) fix. Absolute folders and SSR (no `document`) keep the exact\n// string `assetsUrl()` already produced, so existing setups are unaffected.\nexport function resolveAssetUrlAgainstBaseHref(composedUrl: string): string {\n  if (composedUrl.startsWith('./') && typeof document !== 'undefined') {\n    return new URL(composedUrl, document.baseURI).href;\n  }\n  return composedUrl;\n}\n\nexport function isBleedingEdge(): boolean {\n  return pdfDefaultOptions.assetsFolder?.includes('bleeding-edge');\n}\n\n/**\n * True when the pdf.js engine that will be loaded is at least the given\n * `major.minor` version. Prefer this over {@link isBleedingEdge} for gating a\n * feature: the bleeding-edge/stable split is a moving target (stable advances\n * over time), whereas a feature is permanently tied to the pdf.js version that\n * introduced it. The version is derived from the bundle that `assetsFolder`\n * selects (`getVersionSuffix`).\n */\nexport function isPdfjsVersionAtLeast(major: number, minor: number): boolean {\n  const [maj = 0, min = 0] = getVersionSuffix(pdfDefaultOptions.assetsFolder)\n    .split('.')\n    .map((part) => parseInt(part, 10) || 0);\n  return maj > major || (maj === major && min >= minor);\n}\n\ndeclare const process: any;\n\nfunction isTestEnvironment(): boolean {\n  return (\n    typeof process !== 'undefined' &&\n    typeof (process as any).env !== 'undefined' &&\n    ((process as any).env.NODE_ENV === 'test' || (process as any).env.JEST_WORKER_ID !== undefined || (process as any).env.VITEST !== undefined)\n  );\n}\n\nexport function getSafeCanvasSize(): number {\n  if (typeof window === 'undefined' || typeof document === 'undefined' || isTestEnvironment()) {\n    return 4096;\n  }\n\n  // Use PDF.js defaults for maximum compatibility\n  // The IOSCanvasOptimizationService handles dynamic optimization\n  const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n  const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n\n  if (isIOS || isMobile) {\n    return 5242880; // PDF.js iOS/Android limit (5 megapixels)\n  }\n\n  return 33554432; // PDF.js desktop default (32 megapixels)\n}\n\n// sonar ignore next line\nexport const pdfDefaultOptions = {\n  needsES5: _isIE11 || isEdge || needsES5,\n  annotationEditorMode: 0,\n  annotationMode: AnnotationMode.ENABLE_FORMS,\n  defaultZoomDelay: 400, // milliseconds\n  cursorToolOnLoad: 0,\n  defaultUrl: '',\n  defaultZoomValue: '',\n  disableHistory: false,\n  disablePageLabels: false,\n  enableComment: true,\n  enablePermissions: false,\n  docBaseUrl: '',\n  enablePrintAutoRotate: true,\n  enableSignatureEditor: false,\n  externalLinkRel: 'noopener noreferrer nofollow',\n  externalLinkTarget: 0,\n  findController: undefined as any, // 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  // #3232 (see the comment on sandboxBundleSrc below): the `/..` cancelled out\n  // the assets folder, so the cmaps and the standard fonts were looked up as\n  // siblings of that folder. They ship *inside* it, exactly like the wasm files.\n  // The mistake used to be masked because the resulting relative path was\n  // resolved against the current route; since #3209 it resolves against\n  // `document.baseURI`, which turns it into a plain 404 at the site root.\n  cMapUrl: function () {\n    return resolveAssetUrlAgainstBaseHref(`${assetsUrl(pdfDefaultOptions.assetsFolder)}/cmaps/`);\n  },\n  disableAutoFetch: false,\n  disableFontFace: false,\n  disableRange: false,\n  disableStream: true,\n  isOffscreenCanvasSupported: true,\n  maxImageSize: -1,\n  pdfBug: false,\n  verbosity: 1,\n  workerPort: null as any,\n  assetsFolder: 'assets',\n  _internalFilenameSuffix: '.min', // don't modify this - it's an internal field\n  // #3232: unlike workerSrc, this path was missing the assets-folder prefix\n  // (`./pdf.sandbox-…` instead of `./assets/pdf.sandbox-…`). It used to work by\n  // accident because pdf.js's dynamic `import()` resolved the bare specifier\n  // relative to the viewer module (which lives in the assets folder). Once\n  // #3209 started resolving against `document.baseURI` (the page root), the\n  // missing folder made it 404 at the site root, so the scripting sandbox no\n  // longer loaded and JS embedded in PDFs stopped running. Prefix the folder\n  // like workerSrc does so it resolves to the file that actually ships.\n  sandboxBundleSrc: function () {\n    return resolveAssetUrlAgainstBaseHref(\n      pdfDefaultOptions.needsES5\n        ? `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.mjs`\n        : `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}${pdfDefaultOptions._internalFilenameSuffix}.mjs`\n    );\n  },\n  workerSrc: function () {\n    return resolveAssetUrlAgainstBaseHref(\n      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  },\n  // #3232: see the comment on cMapUrl - the standard fonts ship inside the\n  // assets folder, too.\n  standardFontDataUrl: () => resolveAssetUrlAgainstBaseHref(`${assetsUrl(pdfDefaultOptions.assetsFolder)}/standard_fonts/`),\n  // #3140: wasm files live inside the assets folder (not as a sibling).\n  // Resolve against document.baseURI so the path stays correct on sub-routes\n  // (pdf.js's QuickJS loader resolves wasmUrl against `location.href`, which\n  // otherwise turns `./assets/wasm/` into `/<route>/assets/wasm/`).\n  wasmUrl: () => {\n    const folder = pdfDefaultOptions.assetsFolder;\n    if (folder?.includes('://')) {\n      return `${folder}/wasm/`;\n    }\n    if (typeof document !== 'undefined') {\n      return new URL(`${folder}/wasm/`, document.baseURI).href;\n    }\n    return `./${folder}/wasm/`;\n  },\n\n  // options specific to ngx-extended-pdf-viewer (as opposed to being used by pdf.js)\n  doubleTapZoomFactor: 'page-width',\n  doubleTapZoomsInHandMode: true,\n  doubleTapZoomsInTextSelectionMode: false,\n  doubleTapResetsZoomOnSecondDoubleTap: false,\n  enableScripting: false,\n  enableCatalogAAJavaScript: false,\n  enableOpenActionJavaScript: false,\n  defaultCacheSize: 50,\n  passwordPrompt: undefined as any,\n  enableHWA: true, // enable hardware acceleration. Active since pdf.js 4.4, default true since pdf.js 5.6.\n  enableWebGPU: true, // enable WebGPU mesh shading for improved rendering performance\n  enableNewBadge: false, // show a \"New\" badge on the manage button (upstream default for MOZCENTRAL only)\n  imagesRightClickMinSize: -1, // minimum size (px) for right-clickable images in text layer; -1 = disabled\n  positionPopupDialogsWithJavaScript: true,\n  enablePageReordering: false, // allows users to reorder pages by dragging thumbnails\n  enableSplitMerge: false, // allows users to copy, cut, delete, and export selected pages\n  enableMerge: false, // adds an \"Add file\" button to the sidebar that merges another PDF/image into the current document\n  useWasm: true, // set to false to disable WebAssembly for image decoding (uses *_nowasm_fallback.js instead). Required for CSPs that forbid `wasm-unsafe-eval`.\n  enableAltText: false, // enables the alt-text editor for images that the user adds via the stamp/image annotation tool\n  enableAutoLinking: true, // detects URLs and email addresses in the text layer and turns them into clickable links\n  enableHighlightFloatingButton: false, // shows a floating \"Highlight\" shortcut next to selected text (experimental upstream)\n  pdfBackgroundColor: '', // background color for PDF content rendering\n};\n","import { pdfDefaultOptions } from '../options/pdf-default-options';\n\nexport class PositioningService {\n  private static readonly DOORHANGER_OFFSET = 17;\n  private static readonly TOOLBAR_MARGIN = 4;\n\n  // Button → popup pairs for all positionable popups\n  private static readonly POPUP_PAIRS: Array<[string, string]> = [\n    ['primaryViewFind', 'findbar'],\n    ['secondaryToolbarToggle', 'secondaryToolbar'],\n    ['primaryEditorFreeText', 'editorFreeTextParamsToolbar'],\n    ['primaryEditorInk', 'editorInkParamsToolbar'],\n    ['primaryEditorHighlight', 'editorHighlightParamsToolbar'],\n    ['primaryEditorStamp', 'editorStampParamsToolbar'],\n    ['editorCommentButton', 'editorCommentParamsToolbar'],\n    ['primaryEditorSignatureButton', 'editorSignatureParamsToolbar'],\n  ];\n\n  public positionPopupBelowItsButton(buttonId: string, popupId: string): void {\n    if (!pdfDefaultOptions.positionPopupDialogsWithJavaScript) {\n      return;\n    }\n\n    setTimeout(() => {\n      const button = this.findVisibleButton(buttonId);\n      const popup = this.getPopupElement(popupId);\n\n      if (!button || !popup) return;\n\n      this.applyPopupPositioning(button, popup);\n    });\n  }\n\n  /**\n   * Re-positions all currently open/visible popups. Call this when the\n   * toolbar layout changes (e.g., mobileFriendlyZoom changes at runtime).\n   */\n  public repositionOpenPopups(): void {\n    if (!pdfDefaultOptions.positionPopupDialogsWithJavaScript) {\n      return;\n    }\n\n    setTimeout(() => {\n      for (const [buttonId, popupId] of PositioningService.POPUP_PAIRS) {\n        const popup = document.querySelector<HTMLElement>(`#${popupId}`);\n        if (!popup) continue;\n\n        // A popup is \"open\" if it's visible (no hidden class/attribute and has offsetParent)\n        const isVisible = !popup.classList.contains('hidden') && !popup.hasAttribute('hidden') && popup.offsetParent !== null;\n        if (!isVisible) continue;\n\n        const button = this.findVisibleButton(buttonId);\n        if (!button) continue;\n\n        this.applyPopupPositioning(button, popup);\n      }\n    });\n  }\n\n  private findVisibleButton(buttonId: string): HTMLElement | null {\n    const findVisible = (selector: string) => Array.from(document.querySelectorAll<HTMLElement>(`#${selector}`)).find((el) => el.offsetParent !== null);\n\n    return findVisible(buttonId) || findVisible('secondaryToolbarToggle') || null;\n  }\n\n  private getPopupElement(popupId: string): HTMLElement | null {\n    const popup = document.querySelector<HTMLElement>(`#${popupId}`);\n    return popup?.offsetParent ? popup : null;\n  }\n\n  private applyPopupPositioning(button: HTMLElement, popup: HTMLElement): void {\n    const popupContainer = popup.offsetParent as HTMLElement;\n    const buttonRect = button.getBoundingClientRect();\n    const containerRect = popupContainer.getBoundingClientRect();\n\n    const isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n    let isRightAligned = isRTL;\n    if (popup.classList.contains('doorHangerRight')) {\n      isRightAligned = !isRTL;\n    }\n\n    this.setBasicPopupStyles(popup, isRightAligned);\n    this.setHorizontalPosition(popup, buttonRect, containerRect, isRightAligned);\n    this.setVerticalPosition(popup, containerRect);\n  }\n\n  private setBasicPopupStyles(popup: HTMLElement, isRightAligned: boolean): void {\n    Object.assign(popup.style, {\n      position: 'absolute',\n      display: 'block',\n      transformOrigin: isRightAligned ? 'top right' : 'top left',\n    });\n  }\n\n  private setHorizontalPosition(popup: HTMLElement, buttonRect: DOMRect, containerRect: DOMRect, isRightAligned: boolean): void {\n    const centerOffset = buttonRect.width / 2 - PositioningService.DOORHANGER_OFFSET;\n\n    if (isRightAligned) {\n      popup.style.right = `${containerRect.right - buttonRect.right + centerOffset}px`;\n      popup.style.left = '';\n    } else {\n      popup.style.left = `${buttonRect.left - containerRect.left + centerOffset}px`;\n      popup.style.right = '';\n    }\n  }\n\n  private setVerticalPosition(popup: HTMLElement, containerRect: DOMRect): void {\n    const toolbarContainer = document.querySelector<HTMLElement>('#toolbarContainer');\n    if (!toolbarContainer) return;\n\n    const toolbarRect = toolbarContainer.getBoundingClientRect();\n    const top = toolbarRect.bottom - containerRect.top + PositioningService.TOOLBAR_MARGIN;\n    popup.style.top = `${top}px`;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FocusManagementService {\n  private previousActiveElement: HTMLElement | null = null;\n  private ariaLiveRegion: HTMLDivElement | null = null;\n  private keydownHandler: ((event: KeyboardEvent) => void) | null = null;\n\n  constructor() {\n    this.initializeAriaLiveRegion();\n  }\n\n  /**\n   * Initializes a hidden aria-live region for screen reader announcements\n   */\n  private initializeAriaLiveRegion(): void {\n    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\n    if (typeof document === 'undefined') {\n      return; // SSR guard\n    }\n\n    this.ariaLiveRegion = document.createElement('div');\n    this.ariaLiveRegion.setAttribute('aria-live', 'polite');\n    this.ariaLiveRegion.setAttribute('aria-atomic', 'true');\n    this.ariaLiveRegion.setAttribute('class', 'sr-only');\n    this.ariaLiveRegion.style.position = 'absolute';\n    this.ariaLiveRegion.style.left = '-10000px';\n    this.ariaLiveRegion.style.width = '1px';\n    this.ariaLiveRegion.style.height = '1px';\n    this.ariaLiveRegion.style.overflow = 'hidden';\n\n    if (document.body) {\n      document.body.appendChild(this.ariaLiveRegion);\n    } else {\n      // If body is not ready yet, wait for DOMContentLoaded\n      document.addEventListener('DOMContentLoaded', () => {\n        if (this.ariaLiveRegion) {\n          document.body.appendChild(this.ariaLiveRegion);\n        }\n      });\n    }\n  }\n\n  /**\n   * Announces a message to screen readers via aria-live region\n   * @param message The message to announce\n   */\n  public announce(message: string): void {\n    if (!this.ariaLiveRegion) {\n      return;\n    }\n\n    // Clear previous message\n    this.ariaLiveRegion.textContent = '';\n\n    // Announce new message after a brief delay to ensure screen readers pick it up\n    setTimeout(() => {\n      if (this.ariaLiveRegion) {\n        this.ariaLiveRegion.textContent = message;\n      }\n    }, 100);\n  }\n\n  /**\n   * Moves focus to the first focusable element within a dialog\n   * @param dialogId The ID of the dialog element\n   * @param announceMessage Optional message to announce when dialog opens\n   * @param buttonId Optional ID of the button that triggered the dialog (for reliable focus return)\n   */\n  public moveFocusToDialog(dialogId: string, announceMessage?: string, buttonId?: string): void {\n    if (typeof document === 'undefined') {\n      return; // SSR guard\n    }\n\n    // Store the button element for reliable focus return\n    // Use buttonId if provided, otherwise fall back to activeElement\n    if (buttonId) {\n      const button = document.getElementById(buttonId);\n      if (button) {\n        this.previousActiveElement = button;\n      }\n    } else {\n      const activeElement = document.activeElement as HTMLElement;\n      if (activeElement && activeElement !== document.body) {\n        this.previousActiveElement = activeElement;\n      }\n    }\n\n    // Find dialog and first focusable element\n    const dialog = document.getElementById(dialogId);\n    if (!dialog) {\n      console.warn(`Dialog with ID \"${dialogId}\" not found`);\n      return;\n    }\n\n    // Check if dialog is visible\n    if (dialog.classList.contains('hidden') || dialog.style.display === 'none') {\n      console.warn(`Dialog \"${dialogId}\" is not visible`);\n      return;\n    }\n\n    // Set up focus cycling\n    this.setupFocusCycling(dialog);\n\n    const firstFocusable = this.findFirstFocusableElement(dialog);\n\n    if (firstFocusable) {\n      // Small delay to ensure dialog is fully rendered\n      setTimeout(() => {\n        firstFocusable.focus();\n      }, 50);\n    }\n\n    // Announce dialog opening to screen readers\n    if (announceMessage) {\n      this.announce(announceMessage);\n    }\n  }\n\n  /**\n   * Sets up focus cycling so that tabbing past the last element returns to the toolbar\n   * @param dialog The dialog element\n   */\n  private setupFocusCycling(dialog: HTMLElement): void {\n    // Clean up any existing handler\n    this.cleanupFocusCycling();\n\n    this.keydownHandler = (event: KeyboardEvent) => {\n      if (event.key !== 'Tab') {\n        return;\n      }\n\n      const focusableElements = this.getAllFocusableElements(dialog);\n      if (focusableElements.length === 0) {\n        return;\n      }\n\n      const firstElement = focusableElements[0];\n      const lastElement = focusableElements[focusableElements.length - 1];\n      const activeElement = document.activeElement;\n\n      // Tab on last element -> go to toolbar (previous element that opened the dialog)\n      if (!event.shiftKey && activeElement === lastElement) {\n        event.preventDefault();\n        if (this.previousActiveElement) {\n          this.previousActiveElement.focus();\n        }\n      }\n      // Shift+Tab on first element -> go to last element in dialog\n      else if (event.shiftKey && activeElement === firstElement) {\n        event.preventDefault();\n        lastElement.focus();\n      }\n    };\n\n    document.addEventListener('keydown', this.keydownHandler);\n  }\n\n  /**\n   * Cleans up focus cycling event listeners\n   */\n  private cleanupFocusCycling(): void {\n    if (this.keydownHandler) {\n      document.removeEventListener('keydown', this.keydownHandler);\n      this.keydownHandler = null;\n    }\n  }\n\n  /**\n   * Gets all focusable elements within a container\n   * @param container The container element\n   * @returns Array of focusable elements\n   */\n  private getAllFocusableElements(container: HTMLElement): HTMLElement[] {\n    const focusableSelectors = [\n      'a[href]',\n      'area[href]',\n      'input:not([disabled]):not([type=\"hidden\"])',\n      'select:not([disabled])',\n      'textarea:not([disabled])',\n      'button:not([disabled])',\n      'iframe',\n      'object',\n      'embed',\n      '[contenteditable]',\n      '[tabindex]:not([tabindex=\"-1\"])',\n    ].join(',');\n\n    const elements = container.querySelectorAll<HTMLElement>(focusableSelectors);\n    return Array.from(elements).filter((el) => this.isVisible(el));\n  }\n\n  /**\n   * Returns focus to the previously focused element (typically the button that opened the dialog)\n   * @param announceMessage Optional message to announce when dialog closes\n   */\n  public returnFocusToPrevious(announceMessage?: string): void {\n    // Clean up focus cycling\n    this.cleanupFocusCycling();\n\n    if (this.previousActiveElement) {\n      this.previousActiveElement.focus();\n      this.previousActiveElement = null;\n    }\n\n    // Announce dialog closing to screen readers\n    if (announceMessage) {\n      this.announce(announceMessage);\n    }\n  }\n\n  /**\n   * Finds the first focusable element within a container\n   * @param container The container element to search within\n   * @returns The first focusable element or null\n   */\n  private findFirstFocusableElement(container: HTMLElement | null): HTMLElement | null {\n    if (!container) {\n      return null;\n    }\n\n    const focusableSelectors = [\n      'a[href]',\n      'area[href]',\n      'input:not([disabled]):not([type=\"hidden\"])',\n      'select:not([disabled])',\n      'textarea:not([disabled])',\n      'button:not([disabled])',\n      'iframe',\n      'object',\n      'embed',\n      '[contenteditable]',\n      '[tabindex]:not([tabindex=\"-1\"])',\n    ].join(',');\n\n    const focusableElements = container.querySelectorAll<HTMLElement>(focusableSelectors);\n\n    // Return first visible and focusable element\n    for (const element of Array.from(focusableElements)) {\n      if (this.isVisible(element)) {\n        return element;\n      }\n    }\n\n    return null;\n  }\n\n  /**\n   * Checks if an element is visible\n   * @param element The element to check\n   * @returns True if the element is visible\n   */\n  private isVisible(element: HTMLElement): boolean {\n    const style = globalThis.window.getComputedStyle(element);\n    return style.display !== 'none' && style.visibility !== 'hidden' && element.offsetParent !== null;\n  }\n}\n","export enum FindState {\n  FOUND = 0,\n  NOT_FOUND = 1,\n  WRAPPED = 2,\n  PENDING = 3,\n}\n\nexport interface FindResultMatchesCount {\n  current: number;\n  total: number;\n  matches: Array<any>;\n  matchesLength: Array<any>;\n  caseSensitive: boolean;\n  entireWord: boolean;\n  findPrevious: boolean;\n  highlightAll: boolean;\n  matchDiacritics: boolean;\n  query: string | string[] | RegExp;\n  type: 'findagain' | 'highlightallchange' | 'casesensitivitychange' | 'entirewordchange' | 'diacriticmatchingchange' | 'find';\n}\n\nexport interface FindResult {\n  state: FindState;\n  previous: any;\n  matchesCount: FindResultMatchesCount;\n  rawquery: string;\n}\n","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, signal } from '@angular/core';\nimport { AnnotationEditorParamsType, AnnotationMode, EditorAnnotation, HighlightEditorAnnotation, StampEditorAnnotation } from './options/editor-annotations';\nimport { PdfLayer } from './options/optional_content_config';\nimport { PdfPageInfo, PdfPageSelection } from './options/pdf-page-info';\nimport { PDFPrintRange } from './options/pdf-print-range';\nimport { IPDFViewerApplication, PDFDocumentProxy, PDFFindParameters, PDFPageProxy, TextItem, TextMarkedContent } from './options/pdf-viewer-application';\nimport { ZoomType } from './options/zoom-type';\nimport { PDFNotificationService } from './pdf-notification-service';\n\nexport interface FindOptions {\n  highlightAll?: boolean;\n  matchCase?: boolean;\n  wholeWords?: boolean;\n  matchDiacritics?: boolean;\n  dontScrollIntoView?: boolean;\n  findMultiple?: boolean;\n  regexp?: boolean;\n  useSecondaryFindcontroller?: boolean;\n}\n\ninterface DrawContext {\n  ctx: CanvasRenderingContext2D;\n  canvas: HTMLCanvasElement;\n}\n\nexport interface PDFExportScaleFactor {\n  width?: number;\n  height?: number;\n  scale?: number;\n}\n\n/**\n * A rectangular region of a page, expressed in normalized coordinates on the\n * page's *un-rotated* frame. Every value is a fraction between 0 and 1, measured\n * from the top-left corner of the un-rotated page (x grows to the right, y grows\n * downwards).\n *\n * To screenshot a single annotation, use the editor's rotation-independent\n * rectangle `event.source.normalizedPageRect` (from the `annotationEditorEvent`),\n * which is already in this coordinate system. Note that the editor's raw\n * `x`/`y`/`width`/`height` are **not** suitable here: they are stored in whatever\n * rotation the page had when the annotation was added (axes swapped for 90°/270°),\n * so they only match this frame when the annotation was added un-rotated.\n *\n * Example: the upper-left quarter of a page is `{ x: 0, y: 0, width: 0.5, height: 0.5 }`.\n */\nexport interface PdfPageCropBox {\n  /** Distance of the left edge from the left of the page, as a fraction (0..1). */\n  x: number;\n  /** Distance of the top edge from the top of the page, as a fraction (0..1). */\n  y: number;\n  /** Width of the region, as a fraction of the page width (0..1). */\n  width: number;\n  /** Height of the region, as a fraction of the page height (0..1). */\n  height: number;\n}\n\n/**\n * Rotation (in degrees, clockwise) to render a page at, e.g. when exporting it\n * via {@link NgxExtendedPdfViewerService.getPageAsCanvas} /\n * {@link NgxExtendedPdfViewerService.getPageAsImage}. Overrides the rotation the\n * user applied in the viewer. `0` gives the page in its authored orientation\n * regardless of how the user rotated it; `90`/`180`/`270` force that rotation.\n * Omit it to follow the user's current on-screen rotation.\n */\nexport type PdfPageRotation = 0 | 90 | 180 | 270;\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/**\n * A PDF file or an image you want to merge into the document that's currently open:\n * a URL, a `File` from a file picker, a `Blob`, the raw bytes, or an `ImageBitmap`.\n */\nexport type PdfMergeSource = string | URL | Blob | ArrayBuffer | ArrayBufferView | ImageBitmap;\n\nexport interface PdfMergeOptions {\n  /**\n   * The page number after which the new pages are inserted, counting from 1.\n   * Pass `0` to insert them **before the first page**. If you omit it, the pages\n   * are appended at the end of the document.\n   */\n  insertAfterPage?: number | undefined;\n\n  /**\n   * Which pages of the added file to insert, counting from 1. Accepts single page\n   * numbers and inclusive ranges, e.g. `[1, [4, 8]]`. Defaults to every page.\n   * Ignored when you add an image.\n   */\n  includePages?: PdfPageSelection | undefined;\n\n  /**\n   * Which pages of the added file to skip, counting from 1. Applied after\n   * `includePages`. Ignored when you add an image.\n   */\n  excludePages?: PdfPageSelection | undefined;\n\n  /** The password of the added file, if it is encrypted. */\n  password?: string | undefined;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxExtendedPdfViewerService {\n  /**\n   * Tracks the most recently mounted `<ngx-extended-pdf-viewer>` instance's `openPDF()`\n   * completion. Public for backward compatibility — historically used as the \"is the viewer\n   * ready?\" gate when the library only supported a single instance at a time.\n   *\n   * Today this flag is **not** the source of truth for the service's own `find()` /\n   * `findNext()` / `findPrevious()` methods; those gate on the live `findController`\n   * directly. Component-internal effect guards have moved to a per-instance flag.\n   *\n   * In a future multi-viewer world this field will likely become \"any viewer is mounted\".\n   * Prefer querying viewer state via a viewer reference (see future API) instead of via\n   * this singleton flag.\n   */\n  public ngxExtendedPdfViewerInitialized = false;\n\n  public secondaryMenuIsEmpty = signal(false);\n\n  private readonly renderer: Renderer2;\n  private PDFViewerApplication?: IPDFViewerApplication | undefined;\n\n  constructor(\n    private readonly rendererFactory: RendererFactory2,\n    notificationService: PDFNotificationService,\n  ) {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public find(text: string | string[] | RegExp, options: FindOptions = {}): Array<Promise<number>> | undefined {\n    // #3216 Gate on the live findController rather than the public flag — the controller is\n    // the actual authority on \"can I find?\", and the flag can be stale across destroy/recreate.\n    const findController = options.useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n    if (!findController) {\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 result = findController.ngxFind(findParameters);\n      return result;\n    }\n  }\n\n  public findNext(useSecondaryFindcontroller: boolean = false): boolean {\n    // #3216 Gate on the live findController, not the public flag.\n    const findController = useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n    if (!findController) {\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      findController.ngxFindNext();\n      return true;\n    }\n  }\n\n  public findPrevious(useSecondaryFindcontroller: boolean = false): boolean {\n    // #3216 Gate on the live findController, not the public flag.\n    const findController = useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n    if (!findController) {\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      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 as any)['type']); // ignore the TextMarkedContent items\n\n      const snippets = textSnippets as Array<TextItem>;\n\n      let minX = Number.MAX_SAFE_INTEGER;\n      let minY = Number.MAX_SAFE_INTEGER;\n      let maxX = Number.MIN_SAFE_INTEGER;\n      let maxY = Number.MIN_SAFE_INTEGER;\n      let countLTR = 0;\n      let countRTL = 0;\n      let text = '';\n      let lines = new Array<Line>();\n      for (let i = 0; i < snippets.length; i++) {\n        const currentSnippet = snippets[i];\n        // #3065 modified by ngx-extended-pdf-viewer\n        // Always process the current snippet's text and bounds, regardless of hasEOL\n        const x = currentSnippet.transform[4];\n        const y = -currentSnippet.transform[5];\n        const width = currentSnippet.width;\n        const height = currentSnippet.height;\n        minX = Math.min(minX, x);\n        minY = Math.min(minY, y);\n        maxX = Math.max(maxX, x + width);\n        maxY = Math.max(maxY, y + height);\n        text += currentSnippet.str;\n        if (currentSnippet.dir === 'rtl') {\n          countRTL++;\n        }\n        if (currentSnippet.dir === 'ltr') {\n          countLTR++;\n        }\n        // #3065 end of modification by ngx-extended-pdf-viewer\n\n        let addIt = i === snippets.length - 1 || currentSnippet.hasEOL;\n        if (addIt) {\n          let direction: DirectionType = undefined;\n          if (countLTR > 0 && countRTL > 0) {\n            direction = 'both';\n          } else if (countLTR > 0) {\n            direction = 'ltr';\n          } else if (countRTL > 0) {\n            direction = 'rtl';\n          }\n          const line = {\n            direction,\n            x: minX,\n            y: minY,\n            width: maxX - minX,\n            height: maxY - minY,\n            text: text.trim(),\n          } as Line;\n          lines.push(line);\n          minX = Number.MAX_SAFE_INTEGER;\n          minY = Number.MAX_SAFE_INTEGER;\n          maxX = Number.MIN_SAFE_INTEGER;\n          maxY = Number.MIN_SAFE_INTEGER;\n          countLTR = 0;\n          countRTL = 0;\n          text = '';\n        }\n      }\n      return lines;\n    }\n    return [];\n  }\n\n  public async getPageAsText(pageNumber: number): Promise<string> {\n    if (!this.PDFViewerApplication) {\n      return '';\n    }\n    const pdfDocument = this.PDFViewerApplication?.pdfDocument;\n\n    const page = await pdfDocument.getPage(pageNumber);\n    const textSnippets = (await page.getTextContent()).items;\n    return this.convertTextInfoToText(textSnippets);\n  }\n\n  private convertTextInfoToText(textInfoItems: Array<TextItem | TextMarkedContent>): string {\n    if (!textInfoItems) {\n      return '';\n    }\n    return textInfoItems\n      .filter((info) => !(info as any)['type'])\n      .map((info) => {\n        const textItem = info as TextItem;\n        return textItem.hasEOL ? textItem.str + '\\n' : textItem.str;\n      })\n      .join('');\n  }\n\n  /**\n   * Renders a single page to an off-screen `<canvas>`.\n   *\n   * @param pageNumber 1-based page number to render.\n   * @param scale How large the rendered page should be. Provide exactly one of\n   *        `width`, `height` (both in pixels) or `scale` (a zoom factor, e.g. `2`).\n   * @param background Optional CSS color painted behind the page (e.g. `'rgba(255,0,0,0.3)'`).\n   * @param backgroundColorToReplace The page background color that is replaced by `background`. Defaults to white.\n   * @param annotationMode Which annotations to render. Defaults to\n   *        `AnnotationMode.ENABLE_STORAGE`, so the screenshot includes what you\n   *        see on screen: saved annotations, current form-field values, and\n   *        annotations you just added with the editor (e.g. an image stamp) that\n   *        haven't been saved into the PDF yet. Pass `AnnotationMode.ENABLE` to\n   *        get only the annotations already baked into the document, or\n   *        `AnnotationMode.DISABLE` for none.\n   * @param cropBox Optional region to crop to, in normalized 0..1 coordinates on\n   *        the page's *un-rotated* frame (top-left origin). When set, only that\n   *        part of the page is returned; the crop is rotated to follow the\n   *        rendered rotation for you. To screenshot a single annotation, pass the\n   *        editor's rotation-independent rectangle: `event.source.normalizedPageRect`\n   *        (do **not** pass the raw `x`/`y`/`width`/`height`, which are stored in\n   *        the rotation the annotation was added at). See {@link PdfPageCropBox}.\n   * @param rotation Optional rotation override (`0`, `90`, `180` or `270`). By\n   *        default the screenshot follows the rotation the user applied in the\n   *        viewer. Pass `0` to always get the page in its authored orientation\n   *        regardless of the user's rotation, or `90`/`180`/`270` to force a\n   *        specific rotation. See {@link PdfPageRotation}.\n   * @returns The rendered (and optionally cropped) canvas, or `undefined` if no document is loaded.\n   */\n  public async getPageAsCanvas(\n    pageNumber: number,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE_STORAGE,\n    cropBox?: PdfPageCropBox,\n    rotation?: PdfPageRotation,\n  ): Promise<HTMLCanvasElement | undefined> {\n    if (!this.PDFViewerApplication) {\n      return undefined;\n    }\n    const pdfDocument = this.PDFViewerApplication.pdfDocument;\n    const pdfPage = await pdfDocument.getPage(pageNumber);\n    return this.draw(pdfPage, scale, background, backgroundColorToReplace, annotationMode, cropBox, rotation);\n  }\n\n  /**\n   * Renders a single page and returns it as a PNG data URL.\n   *\n   * Same parameters as {@link NgxExtendedPdfViewerService.getPageAsCanvas}; in\n   * particular `cropBox` lets you export just a sub-region (e.g. a single\n   * annotation) using normalized 0..1 page-relative coordinates.\n   *\n   * @returns A `data:image/png;base64,...` string, or `undefined` if no document is loaded.\n   */\n  public async getPageAsImage(\n    pageNumber: number,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE_STORAGE,\n    cropBox?: PdfPageCropBox,\n    rotation?: PdfPageRotation,\n  ): Promise<string | undefined> {\n    const canvas = await this.getPageAsCanvas(pageNumber, scale, background, backgroundColorToReplace, annotationMode, cropBox, rotation);\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_STORAGE,\n    cropBox?: PdfPageCropBox,\n    rotationOverride?: PdfPageRotation,\n  ): Promise<HTMLCanvasElement> {\n    // #3234 modified by ngx-extended-pdf-viewer\n    // Render the page in its current on-screen orientation. getViewport() only\n    // defaults to the page's intrinsic /Rotate; it ignores the rotation the user\n    // applied in the viewer. Without passing that in, a screenshot of a rotated\n    // page would come out in the un-rotated orientation (#3234). Callers can\n    // override the user's rotation via `rotationOverride` (e.g. pass 0 to always\n    // get the authored orientation); when omitted the user's current rotation wins.\n    const userRotation = rotationOverride ?? this.PDFViewerApplication?.pdfViewer?.pagesRotation ?? 0;\n    const rotation = (userRotation + pdfPage.rotate) % 360;\n\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, rotation }).width;\n    } else if (scale.height) {\n      zoomFactor = scale.height / pdfPage.getViewport({ scale: 1, rotation }).height;\n    }\n    const viewport = pdfPage.getViewport({\n      scale: zoomFactor,\n      rotation,\n    });\n    // #3234 end of modification by ngx-extended-pdf-viewer\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      // Omit `background` when undefined: pdf.js's RenderParameters types it as\n      // `string | Object` (no `undefined`), which trips exactOptionalPropertyTypes.\n      ...(background !== undefined && { background }),\n      backgroundColorToReplace,\n      annotationMode,\n    };\n    const renderTask = pdfPage.render(renderContext);\n\n    // #3234 modified by ngx-extended-pdf-viewer\n    // The cropBox is expressed in the page's un-rotated coordinate space (e.g. an\n    // editor's `normalizedPageRect`). The canvas above is rendered at `rotation`\n    // degrees, so we rotate the cropBox by the same amount to hit the right region;\n    // otherwise a rotated screenshot crops the wrong part of the page (#3234).\n    const effectiveCropBox = cropBox ? this.rotateCropBox(cropBox, rotation) : undefined;\n    const result = () => (effectiveCropBox ? this.cropCanvas(canvas, effectiveCropBox) : canvas);\n    // #3234 end of modification by ngx-extended-pdf-viewer\n\n    return renderTask.promise.then(result);\n  }\n\n  /**\n   * Rotates a normalized (0..1, top-left origin) cropBox from the page's\n   * un-rotated coordinate space into the space of a canvas rendered at\n   * `rotation` degrees clockwise. For 90°/270° the width and height swap axes.\n   */\n  private rotateCropBox(cropBox: PdfPageCropBox, rotation: number): PdfPageCropBox {\n    const { x, y, width, height } = cropBox;\n    switch (((rotation % 360) + 360) % 360) {\n      case 90:\n        return { x: 1 - y - height, y: x, width: height, height: width };\n      case 180:\n        return { x: 1 - x - width, y: 1 - y - height, width, height };\n      case 270:\n        return { x: y, y: 1 - x - width, width: height, height: width };\n      default:\n        return cropBox;\n    }\n  }\n\n  /**\n   * Returns a new canvas containing only the region described by `cropBox`\n   * (normalized 0..1 page-relative coordinates, top-left origin) of `source`.\n   */\n  private cropCanvas(source: HTMLCanvasElement, cropBox: PdfPageCropBox): HTMLCanvasElement {\n    const sx = Math.round(cropBox.x * source.width);\n    const sy = Math.round(cropBox.y * source.height);\n    const sw = Math.max(1, Math.round(cropBox.width * source.width));\n    const sh = Math.max(1, Math.round(cropBox.height * source.height));\n    const { ctx, canvas } = this.getPageDrawContext(sw, sh);\n    ctx.drawImage(source, sx, sy, sw, sh, 0, 0, sw, sh);\n    return canvas;\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          // pdf.js 6.1 removed PageViewport.convertToViewportRectangle, so inline\n          // the equivalent: apply the viewport transform to both rect corners.\n          const { transform } = currentPage.getViewport({ scale: dpiRatio });\n          const toViewport = (x: number, y: number): [number, number] => [\n            x * transform[0] + y * transform[2] + transform[4],\n            x * transform[1] + y * transform[3] + transform[5],\n          ];\n          const [vx1, vy1] = toViewport(a.rect[0], a.rect[1]);\n          const [vx2, vy2] = toViewport(a.rect[2], a.rect[3]);\n          const fieldRect: Array<number> = [vx1, vy1, vx2, vy2];\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); // NOSONAR — awaiting non-Promise is intentional, keeps the loop structure simple\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: any) => typeof groupId !== 'object');\n      return layerIds.map((layerId: any) => {\n        const config = optionalContentConfig.getGroup(layerId);\n        return {\n          layerId: layerId,\n          name: config.name,\n          visible: config.visible,\n        } as PdfLayer;\n      });\n    }\n    return undefined;\n  }\n\n  public async toggleLayer(layerId: string): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      return;\n    }\n    const optionalContentConfig = await this.PDFViewerApplication?.pdfViewer.optionalContentConfigPromise;\n    if (optionalContentConfig) {\n      let isVisible = optionalContentConfig.getGroup(layerId).visible;\n      const checkbox = document.querySelector(`input[id='${layerId}']`);\n      if (checkbox) {\n        isVisible = (checkbox as HTMLInputElement).checked;\n        (checkbox as HTMLInputElement).checked = !isVisible;\n      }\n      optionalContentConfig.setVisibility(layerId, !isVisible);\n      this.PDFViewerApplication?.eventBus.dispatch('optionalcontentconfig', {\n        source: this,\n        promise: Promise.resolve(optionalContentConfig),\n      });\n    }\n  }\n\n  public scrollPageIntoView(pageNumber: number, pageSpot?: { top?: number | string; left?: number | string }): void {\n    const viewer = this.PDFViewerApplication?.pdfViewer as any;\n    viewer?.scrollPagePosIntoView(pageNumber, pageSpot);\n  }\n\n  /**\n   * Returns all editor annotations (drawings, text, images, highlights) in serialized format.\n   *\n   * **Two kinds of identifier:**\n   * - `id` — a **temporary** identifier (`pdfjs_internal_editor_N`) regenerated\n   *   every session. Useful for live event tracking via `annotationEditorEvent`,\n   *   but it is **not** stable, so do not persist it.\n   * - `customId` — a **stable**, developer-supplied identifier (e.g. a UUID).\n   *   It is only present if you set it (see below). Unlike `id`, it survives the\n   *   `getSerializedAnnotations()` → store → `addEditorAnnotation()` round-trip,\n   *   so it is the field to rely on when correlating saved annotations.\n   *\n   * **Example - Stable IDs across sessions (#3225):**\n   * ```typescript\n   * // First save: assign your own stable id to each annotation.\n   * const annotations = pdfService.getSerializedAnnotations() ?? [];\n   * const toStore = annotations.map((a) => ({ ...a, customId: a.customId ?? crypto.randomUUID() }));\n   * localStorage.setItem('annotations', JSON.stringify(toStore));\n   *\n   * // Restore: customId is preserved (the temporary `id` is regenerated).\n   * const stored = JSON.parse(localStorage.getItem('annotations')!);\n   * await pdfService.addEditorAnnotation(stored);\n   * // getSerializedAnnotations() now returns the same customId values.\n   * ```\n   *\n   * @returns Array of serialized annotations (each with a temporary `id`, plus a\n   *          stable `customId` if you assigned one), or null if none exist\n   */\n  public getSerializedAnnotations(): EditorAnnotation[] | null | undefined {\n    // #2424 modified by ngx-extended-pdf-viewer\n    // Auto-commit any active annotation editor before serializing, so that\n    // annotations still being edited are included in the result.\n    (this.PDFViewerApplication?.pdfViewer as any)?.annotationEditorUIManager?.commitOrRemove();\n    // #2424 end of modification by ngx-extended-pdf-viewer\n    return this.PDFViewerApplication?.pdfViewer.getSerializedAnnotations();\n  }\n\n  // #3076 added by ngx-extended-pdf-viewer\n  /**\n   * Returns a single editor annotation by its identifier.\n   *\n   * Matches against **both** identifiers, so you can look an annotation up by\n   * either the temporary `id` (e.g. the one carried by an `annotationEditorEvent`)\n   * or the stable `customId` you assigned (see {@link getSerializedAnnotations}).\n   *\n   * @param id The annotation's temporary `id` or its stable `customId`\n   * @returns The serialized annotation matching the identifier, or null if not found\n   */\n  public getSerializedAnnotation(id: string): EditorAnnotation | null | undefined {\n    // #2424: use our wrapper which auto-commits active editors\n    const annotations = this.getSerializedAnnotations();\n    if (!annotations || !Array.isArray(annotations)) {\n      return null;\n    }\n    // #3225 match on the stable customId as well as the temporary id. The\n    // `customId != null` guard keeps a nullish query from matching annotations\n    // that simply have no customId (preserves the #3076 `id`-only behavior).\n    return annotations.find((annotation) => annotation.id === id || (annotation.customId != null && annotation.customId === id)) || null;\n  }\n  // #3076 end of modification by ngx-extended-pdf-viewer\n\n  /**\n   * Programmatically adds one or more editor annotations to the PDF.\n   *\n   * **ID Behavior:**\n   * - The temporary `id` field is **ignored** - a fresh internal id is always\n   *   assigned, so no id conflicts can occur.\n   * - The stable `customId` field, if present, is **preserved** (#3225). Set it\n   *   to your own value (e.g. a UUID) before storing, and the restored\n   *   annotation keeps it - `getSerializedAnnotations()` will return it again.\n   *   Uniqueness of `customId` values is your responsibility.\n   *\n   * **Supported Annotation Types:**\n   * - Ink (drawings)\n   * - FreeText (text boxes)\n   * - Stamp (images)\n   * - Highlight\n   * - Popup (comments)\n   *\n   * **Timing:** an annotation is added to a page's annotation _editor_ layer,\n   * which is created only after that page has been rendered (slightly after the\n   * display annotation layer). Wait for the page's `(annotationEditorLayerRendered)`\n   * event before calling this method - **not** `(annotationLayerRendered)`, which\n   * fires too early. Calling it before the editor layer exists logs\n   * `paste: \"Cannot read properties of undefined (reading 'deserialize')\"` and adds\n   * nothing (see issue #2656).\n   *\n   * @param serializedAnnotation A single annotation object, array of annotations, or JSON string\n   * @returns Promise that resolves when the annotation(s) have been added\n   *\n   * @example\n   * // Add a single annotation (with or without ID - both work the same)\n   * await pdfService.addEditorAnnotation({\n   *   annotationType: 3,\n   *   color: [255, 0, 0],\n   *   value: 'Hello',\n   *   pageIndex: 0,\n   *   rect: [100, 100, 200, 150],\n   *   rotation: 0,\n   *   // `id` is ignored; set `customId` if you want a stable id that survives the round-trip\n   *   customId: 'a3f1c2e0-...'\n   * });\n   */\n  public async addEditorAnnotation(serializedAnnotation: string | EditorAnnotation): Promise<void> {\n    // #3061 When the editor mode is NONE, PDF.js internally switches to FREETEXT mode temporarily,\n    // which causes the FreeText popup to flash. Prevent this by hiding the popup during the operation.\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    const popup = document.getElementById('editorFreeTextParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If mode is NONE and popup was hidden, keep it hidden during the temporary mode switch\n    if (currentMode === 0 && wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    await this.PDFViewerApplication?.pdfViewer.addEditorAnnotation(serializedAnnotation);\n\n    // #3061 Remove the temporary hiding class after the operation\n    if (currentMode === 0 && wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public removeEditorAnnotations(filter?: (serialized: object) => boolean): void {\n    this.PDFViewerApplication?.pdfViewer.removeEditorAnnotations(filter);\n  }\n\n  private async loadImageAsDataURL(imageUrl: string): Promise<Blob | string> {\n    if (imageUrl.startsWith('data:')) {\n      return imageUrl;\n    }\n    const response = await fetch(imageUrl);\n    if (!response.ok) {\n      throw new Error(`Failed to fetch the image from ${imageUrl}: ${response.statusText}`);\n    }\n\n    const imageBlob = await response.blob();\n    return imageBlob;\n  }\n\n  /**\n   * Adds an image to a page as a stamp (editor) annotation. Since this is a\n   * viewer rather than an editor, the image is placed on the annotation editor\n   * layer; in most cases the result is indistinguishable from a real stamp.\n   *\n   * The `left`, `bottom`, `right`, and `top` coordinates accept percentages\n   * (e.g. `'50%'`), pixels (e.g. `'100px'`), or PDF coordinates (e.g. `100`).\n   * Omitted coordinates default to the logical origin (`left`/`bottom` to `0`,\n   * `right`/`top` to `'100%'`). If `page` is omitted, the current page is used.\n   *\n   * **Timing:** wait for the target page's `(annotationEditorLayerRendered)`\n   * event before calling this - **not** `(annotationLayerRendered)`. The editor\n   * layer is created only after the page is rendered, so calling it too early\n   * logs `paste: \"Cannot read properties of undefined (reading 'deserialize')\"`\n   * and adds nothing (see issue #2656). On large, lazily-rendered documents,\n   * add each page's image from its own `(annotationEditorLayerRendered)` handler.\n   *\n   * @param parameters The image source, optional target page, position, and rotation\n   * @returns Promise that resolves once the image has been added\n   */\n  public async addImageToAnnotationLayer({ urlOrDataUrl, page, left, bottom, right, top, rotation }: PdfImageParameters): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      console.error('The PDF viewer has not been initialized yet.');\n      return;\n    }\n    let pageToModify: number;\n    if (page !== undefined) {\n      if (page !== this.currentPageIndex()) {\n        await this.renderPage(page);\n      }\n      pageToModify = page;\n    } else {\n      pageToModify = this.currentPageIndex() ?? 0;\n    }\n    const previousAnnotationEditorMode = this.PDFViewerApplication.pdfViewer.annotationEditorMode;\n\n    // #3061 Check if the stamp popup is currently hidden to prevent flashing\n    const popup = document.getElementById('editorStampParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If the popup was hidden, add a CSS class to keep it hidden during mode switch\n    if (wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    this.switchAnnotationEdtorMode(13);\n    const dataUrl = await this.loadImageAsDataURL(urlOrDataUrl);\n    const pageSize = this.PDFViewerApplication.pdfViewer._pages[pageToModify].pdfPage.view;\n    const leftDim = pageSize[0];\n    const bottomDim = pageSize[1];\n    const rightDim = pageSize[2];\n    const topDim = pageSize[3];\n    const width = rightDim - leftDim;\n    const height = topDim - bottomDim;\n    const imageWidth = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientWidth;\n    const imageHeight = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientHeight;\n    const leftPdf = this.convertToPDFCoordinates(left, width, 0, imageWidth);\n    const bottomPdf = this.convertToPDFCoordinates(bottom, height, 0, imageHeight);\n    const rightPdf = this.convertToPDFCoordinates(right, width, width, imageWidth);\n    const topPdf = this.convertToPDFCoordinates(top, height, height, imageHeight);\n\n    const rect = NgxExtendedPdfViewerService.toPageRect(leftPdf, bottomPdf, rightPdf, topPdf, width, height, 'addImageToAnnotationLayer');\n    if (!rect) {\n      this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n      if (wasHidden && popup) {\n        this.renderer.removeClass(popup, 'ngx-keep-hidden');\n      }\n      return;\n    }\n\n    const stampAnnotation: StampEditorAnnotation = {\n      annotationType: 13,\n      pageIndex: pageToModify,\n      bitmapUrl: dataUrl,\n      rect,\n      rotation: rotation ?? 0,\n      isCopy: true,\n    };\n    this.addEditorAnnotation(stampAnnotation);\n    await this.sleep(10);\n    this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n\n    // #3061 Remove the temporary hiding class after switching back\n    if (wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  /**\n   * Adds a highlight (editor) annotation to a page.\n   *\n   * The `left`, `bottom`, `right`, and `top` coordinates accept percentages\n   * (e.g. `'50%'`), pixels (e.g. `'100px'`), or PDF coordinates (e.g. `100`).\n   * If `page` is omitted (`undefined`), the current page is used.\n   *\n   * **Timing:** like {@link addImageToAnnotationLayer}, wait for the target\n   * page's `(annotationEditorLayerRendered)` event before calling this - **not**\n   * `(annotationLayerRendered)`. Calling it before the editor layer exists logs\n   * `paste: \"Cannot read properties of undefined (reading 'deserialize')\"` and\n   * adds nothing (see issue #2656).\n   *\n   * @param color RGB color as a 0-255 triple, e.g. `[255, 255, 0]` for yellow\n   * @param page Zero-based page index, or `undefined` for the current page\n   * @param left Left edge (percentage, pixels, or PDF coordinate)\n   * @param bottom Bottom edge (percentage, pixels, or PDF coordinate)\n   * @param right Right edge (percentage, pixels, or PDF coordinate)\n   * @param top Top edge (percentage, pixels, or PDF coordinate)\n   * @param thickness Highlighter thickness; defaults to `12`\n   * @param rotation Rotation in degrees (`0`, `90`, `180`, or `270`); defaults to `0`\n   * @param opacity Opacity between `0` and `1`; defaults to `0.5`\n   * @returns Promise that resolves once the highlight has been added\n   */\n  public async addHighlightToAnnotationLayer(\n    color: number[],\n    page: number | undefined,\n    left: number | string,\n    bottom: number | string,\n    right: number | string,\n    top: number | string,\n    thickness: number = 12,\n    rotation: 0 | 90 | 180 | 270 = 0,\n    opacity: number = 0.5,\n  ): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      console.error('The PDF viewer has not been initialized yet.');\n      return;\n    }\n\n    let pageToModify: number;\n    if (page !== undefined) {\n      if (page !== this.currentPageIndex()) {\n        await this.renderPage(page);\n      }\n      pageToModify = page;\n    } else {\n      pageToModify = this.currentPageIndex() ?? 0;\n    }\n\n    const previousAnnotationEditorMode = this.PDFViewerApplication.pdfViewer.annotationEditorMode;\n\n    // #3061 Check if the popup is currently hidden to prevent flashing\n    const popup = document.getElementById('editorHighlightParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If the popup was hidden, add a CSS class to keep it hidden during mode switch\n    if (wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    this.switchAnnotationEdtorMode(9); // AnnotationEditorType.HIGHLIGHT\n\n    const pageSize = this.PDFViewerApplication.pdfViewer._pages[pageToModify].pdfPage.view;\n    const leftDim = pageSize[0];\n    const bottomDim = pageSize[1];\n    const rightDim = pageSize[2];\n    const topDim = pageSize[3];\n    const width = rightDim - leftDim;\n    const height = topDim - bottomDim;\n    const pageWidth = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientWidth;\n    const pageHeight = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientHeight;\n\n    const rect = NgxExtendedPdfViewerService.toPageRect(\n      this.convertToPDFCoordinates(left, width, 0, pageWidth),\n      this.convertToPDFCoordinates(bottom, height, 0, pageHeight),\n      this.convertToPDFCoordinates(right, width, width, pageWidth),\n      this.convertToPDFCoordinates(top, height, height, pageHeight),\n      width,\n      height,\n      'addHighlightToAnnotationLayer',\n    );\n    if (!rect) {\n      this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n      if (wasHidden && popup) {\n        this.renderer.removeClass(popup, 'ngx-keep-hidden');\n      }\n      return;\n    }\n    const [leftPdf, bottomPdf, rightPdf, topPdf] = rect;\n\n    // Create quadPoints object with numeric keys (matching export format)\n    const quadPoints: any = {};\n    quadPoints[0] = leftPdf; // x1 - left edge start\n    quadPoints[1] = topPdf; // y1 - top edge start\n    quadPoints[2] = rightPdf; // x2 - right edge end\n    quadPoints[3] = topPdf; // y2 - top edge end\n    quadPoints[4] = leftPdf; // x3 - left edge start (bottom)\n    quadPoints[5] = bottomPdf; // y3 - bottom edge start\n    quadPoints[6] = rightPdf; // x4 - right edge end (bottom)\n    quadPoints[7] = bottomPdf; // y4 - bottom edge end\n\n    const highlightAnnotation: HighlightEditorAnnotation = {\n      annotationType: 9,\n      color: color,\n      opacity: opacity,\n      thickness: thickness,\n      quadPoints: quadPoints,\n      outlines: [\n        [\n          // Single outline rectangle\n          leftPdf,\n          bottomPdf, // Bottom-left\n          leftPdf,\n          topPdf, // Top-left\n          rightPdf,\n          topPdf, // Top-right\n          rightPdf,\n          bottomPdf, // Bottom-right\n        ],\n      ],\n      pageIndex: pageToModify,\n      rect: [leftPdf, bottomPdf, rightPdf, topPdf],\n      rotation: rotation,\n      isCopy: true,\n    };\n\n    this.addEditorAnnotation(highlightAnnotation);\n    await this.sleep(10);\n    this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n\n    // #3061 Remove the temporary hiding class after switching back\n    if (wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public currentPageIndex(): number | undefined {\n    const viewer = this.PDFViewerApplication?.pdfViewer;\n    if (viewer) {\n      return viewer.currentPageNumber - 1;\n    }\n    return undefined;\n  }\n\n  /**\n   * Turns four edge coordinates into a valid PDF rectangle: sorts them, and keeps them on the page.\n   *\n   * Without this, a coordinate outside the page - easy to hit with pixels, because they refer to the\n   * page as it is rendered right now, which may be only a few hundred pixels wide - produced a\n   * rectangle with a negative width or height. pdf.js then failed deep inside the stamp editor with\n   * \"Failed to execute 'transferToImageBitmap' on 'OffscreenCanvas'\".\n   *\n   * @returns the rectangle, or `undefined` if there's no area left to draw on\n   */\n  private static toPageRect(\n    left: number,\n    bottom: number,\n    right: number,\n    top: number,\n    pageWidth: number,\n    pageHeight: number,\n    method: string,\n  ): [number, number, number, number] | undefined {\n    const edges = [left, bottom, right, top];\n    if (edges.some((edge) => !Number.isFinite(edge))) {\n      console.error(`${method}(): the coordinates [${edges.join(', ')}] aren't valid numbers. Is the page rendered yet?`);\n      return undefined;\n    }\n    const clamp = (value: number, max: number) => Math.min(Math.max(value, 0), max);\n    const x1 = clamp(Math.min(left, right), pageWidth);\n    const x2 = clamp(Math.max(left, right), pageWidth);\n    const y1 = clamp(Math.min(bottom, top), pageHeight);\n    const y2 = clamp(Math.max(bottom, top), pageHeight);\n\n    if (x2 - x1 < 1 || y2 - y1 < 1) {\n      console.error(\n        `${method}(): the coordinates [left=${left.toFixed(1)}, bottom=${bottom.toFixed(1)}, right=${right.toFixed(1)}, top=${top.toFixed(1)}] ` +\n          `leave no room on a page of ${pageWidth.toFixed(1)} x ${pageHeight.toFixed(1)} PDF units, so nothing was added. ` +\n          `Note that pixel values (\"250px\") refer to the page as it is rendered on screen right now, so they shrink when the user zooms out.`,\n      );\n      return undefined;\n    }\n    return [x1, y1, x2, y2];\n  }\n\n  private convertToPDFCoordinates(value: ZoomType, maxValue: number, defaultValue: number, imageMaxValue: number): number {\n    if (!value) {\n      return defaultValue;\n    }\n    if (typeof value === 'string') {\n      if (value.endsWith('%')) {\n        return (Number.parseInt(value, 10) / 100) * maxValue;\n      } else if (value.endsWith('px')) {\n        return Number.parseInt(value, 10) * (maxValue / imageMaxValue);\n      } else {\n        return Number.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  /** @deprecated This feature was never wired up in pdf.js. Use editorHighlightColor instead. */\n  public set editorHighlightDefaultColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_COLOR, color);\n  }\n\n  public set editorHighlightShowAll(showAll: boolean) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, showAll);\n  }\n\n  public set editorHighlightThickness(thickness: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, thickness);\n  }\n\n  public setEditorProperty(editorPropertyType: number, value: any): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditorparams', { type: editorPropertyType, value });\n    this.PDFViewerApplication?.eventBus.dispatch('annotationeditorparamschanged', { details: [[editorPropertyType, value]] });\n  }\n\n  public getCurrentPage(): number {\n    if (!this.PDFViewerApplication) {\n      return 1;\n    }\n    return this.PDFViewerApplication.page ?? 1;\n  }\n\n  public getPageCount(): number {\n    if (!this.PDFViewerApplication) {\n      return 0;\n    }\n    return this.PDFViewerApplication.pagesCount ?? 0;\n  }\n\n  public movePage(fromIndex: number, toIndex: number): void {\n    if (!this.PDFViewerApplication) {\n      console.error('PDF viewer not initialized');\n      return;\n    }\n\n    // Check if page reordering is enabled\n    const enablePageReordering = (globalThis as any).pdfDefaultOptions?.enablePageReordering;\n    if (!enablePageReordering) {\n      console.error('Page reordering is not enabled. Set pdfDefaultOptions.enablePageReordering = true');\n      return;\n    }\n\n    // Validate indices (1-based)\n    const pageCount = this.getPageCount();\n    if (fromIndex < 1 || fromIndex > pageCount || toIndex < 1 || toIndex > pageCount) {\n      console.error(`Invalid page indices. fromIndex: ${fromIndex}, toIndex: ${toIndex}, pageCount: ${pageCount}`);\n      return;\n    }\n\n    if (fromIndex === toIndex) {\n      return; // No movement needed\n    }\n\n    try {\n      // Call the movePage function from app.js\n      if (this.PDFViewerApplication.movePage) {\n        this.PDFViewerApplication.movePage(fromIndex, toIndex);\n      } else {\n        console.error('movePage function not available in PDF viewer application');\n      }\n    } catch (error) {\n      console.error('Error moving page:', error);\n    }\n  }\n\n  /**\n   * Adds the pages of another PDF file - or an image - to the document that's currently\n   * open. This is the programmatic counterpart of the sidebar's \"Add file\" button, but\n   * it can insert the pages anywhere, including **before the first page**.\n   *\n   * The document on screen is replaced by the merged one. The original file on the server\n   * is never touched; use `getCurrentDocumentAsBlob()` if you want to store the result.\n   * Pending page reorderings and deletions are kept.\n   *\n   * Requires pdf.js 6.0 or newer (i.e. ngx-extended-pdf-viewer 28 or newer). Merging is\n   * still an experimental feature of pdf.js, so the result may change in future versions.\n   *\n   * @param source One or several PDF files or images: a URL, a `File`, a `Blob`,\n   *   the raw bytes, or an `ImageBitmap`. Several sources are inserted in the order given.\n   * @param options Where to insert the pages, and which pages to take\n   * @returns Promise that resolves when the merged document has been loaded and rendered\n   * @throws Error if the viewer isn't ready yet, if a source can't be loaded, or if\n   *   pdf.js can't build the merged document\n   *\n   * @example\n   * // Add a cover page in front of the document\n   * await pdfService.mergeDocument('/assets/cover.pdf', { insertAfterPage: 0 });\n   *\n   * // Append a file the user picked, but only its pages 1 and 4-8\n   * await pdfService.mergeDocument(input.files[0], { includePages: [1, [4, 8]] });\n   *\n   * // Insert a scanned image after page 3\n   * await pdfService.mergeDocument(imageBlob, { insertAfterPage: 3 });\n   */\n  public async mergeDocument(source: PdfMergeSource | Array<PdfMergeSource>, options: PdfMergeOptions = {}): Promise<void> {\n    const application = this.PDFViewerApplication;\n    if (!application?.pdfDocument) {\n      throw new Error('mergeDocument(): the PDF viewer has not been initialized yet.');\n    }\n    const { insertAfterPage } = options;\n    if (insertAfterPage !== undefined && (!Number.isInteger(insertAfterPage) || insertAfterPage < 0)) {\n      throw new Error(`mergeDocument(): insertAfterPage must be a page number >= 0, but it was ${insertAfterPage}. Pass 0 to insert before the first page.`);\n    }\n    const sources = Array.isArray(source) ? source : [source];\n    if (sources.length === 0) {\n      return;\n    }\n\n    // pdf.js counts pages from 0 and wants the page *before* the insertion point,\n    // so page 1 becomes 0 and \"before the first page\" becomes -1. Insertion points\n    // beyond the last page are clamped by pdf.js, hence appending is the default.\n    const pageCount = this.getPageCount();\n    const insertAfter = Math.min(insertAfterPage ?? pageCount, pageCount) - 1;\n\n    const newPages: Array<PdfPageInfo> = [];\n    for (const singleSource of sources) {\n      newPages.push(await this.toPageInfo(singleSource, insertAfter, options));\n    }\n\n    // Merging replaces the document, so pages the user has already reordered or deleted\n    // have to be part of the description of the new document - otherwise they'd come back.\n    const thumbnailViewer = application.pdfThumbnailViewer;\n    const pendingChanges: Array<PdfPageInfo> | null = thumbnailViewer?.hasStructuralChanges?.() ? thumbnailViewer.getStructuralChanges() : null;\n    const currentDocument: Array<PdfPageInfo> = pendingChanges ?? [{ document: null }];\n\n    await this.extractPages([...currentDocument, ...newPages]);\n  }\n\n  /**\n   * Rebuilds the document that's currently open from the page descriptions you pass in,\n   * and shows the result. This is the low-level escape hatch behind `mergeDocument()`:\n   * it hands `pageInfos` to pdf.js unchanged, so you can combine several documents,\n   * drop pages, and put every page exactly where you want it - at the price of using\n   * pdf.js's own **0-based** semantics.\n   *\n   * Unlike `mergeDocument()`, this method does not add pending page reorderings and\n   * deletions for you; `pageInfos` describes the new document completely.\n   *\n   * Requires pdf.js 6.0 or newer (i.e. ngx-extended-pdf-viewer 28 or newer). This is an\n   * experimental pdf.js API, so its semantics may change in future versions.\n   *\n   * @param pageInfos The sources of the new document, in pdf.js's `PageInfo` format\n   * @returns Promise that resolves when the new document has been loaded and rendered\n   * @throws Error if the viewer isn't ready yet, or if pdf.js can't build the document\n   *\n   * @example\n   * // Put another PDF in front of the current document, minus its third page\n   * await pdfService.extractPages([\n   *   { document: null },                                    // the document on screen\n   *   { document: bytes, excludePages: [2], insertAfter: -1 } // 0-based: page 3, before page 1\n   * ]);\n   */\n  public async extractPages(pageInfos: Array<PdfPageInfo>): Promise<void> {\n    const application = this.PDFViewerApplication;\n    const pdfDocument = application?.pdfDocument;\n    if (!application || !pdfDocument) {\n      throw new Error('extractPages(): the PDF viewer has not been initialized yet.');\n    }\n    if (typeof pdfDocument.extractPages !== 'function') {\n      throw new Error('extractPages(): merging pages requires pdf.js 6.0 or newer.');\n    }\n\n    const mergedDocument = await pdfDocument.extractPages(pageInfos);\n    if (!mergedDocument) {\n      throw new Error(\"extractPages(): pdf.js couldn't build the document. Is every source a valid PDF file? (XFA files and wrong passwords are rejected, too.)\");\n    }\n\n    // Same bookkeeping as pdf.js's own \"Add file\" button (see onSaveAndLoad() in app.js):\n    // the document on screen is no longer the file it was loaded from.\n    application._mergedDocumentNeedsSaving = true;\n    const rendered = this.waitForPagesLoaded();\n    try {\n      await application.open({ data: mergedDocument, filename: application._docFilename });\n    } catch (error) {\n      rendered.cancel();\n      throw error;\n    }\n    await rendered.promise;\n  }\n\n  /**\n   * Removes pages from the document that's currently open. The pages are gone for good -\n   * unlike the sidebar's delete button, this can't be undone.\n   *\n   * The document on screen is replaced by one without those pages; the original file on the\n   * server is never touched. Pages the user has reordered are kept where they are, so the\n   * page numbers you pass in are always the ones the user sees.\n   *\n   * Requires pdf.js 6.0 or newer (i.e. ngx-extended-pdf-viewer 28 or newer).\n   *\n   * @param pages The pages to delete, counting from 1. Accepts a single page number, and a\n   *   list of page numbers and inclusive ranges, e.g. `[1, [4, 8]]`.\n   * @returns Promise that resolves when the shortened document has been loaded and rendered\n   * @throws Error if the viewer isn't ready yet, if a page number doesn't exist, or if you\n   *   try to delete every page\n   *\n   * @example\n   * await pdfService.deletePages(3);            // delete page 3\n   * await pdfService.deletePages([1, [8, 10]]); // delete page 1 and the pages 8 to 10\n   */\n  public async deletePages(pages: number | PdfPageSelection): Promise<void> {\n    const pdfDocument = this.PDFViewerApplication?.pdfDocument;\n    if (!pdfDocument) {\n      throw new Error('deletePages(): the PDF viewer has not been initialized yet.');\n    }\n    const pageCount = this.getPageCount();\n    const deletedPages = NgxExtendedPdfViewerService.toPageNumbers(typeof pages === 'number' ? [pages] : pages, pageCount, 'deletePages');\n    if (deletedPages.size === 0) {\n      return;\n    }\n    if (deletedPages.size >= pageCount) {\n      throw new Error(`deletePages(): a PDF file needs at least one page, so you can't delete all ${pageCount} of them.`);\n    }\n    const pagesMapper = pdfDocument.pagesMapper;\n    if (!pagesMapper) {\n      throw new Error('deletePages(): deleting pages requires pdf.js 6.0 or newer.');\n    }\n\n    const remainingPages: Array<number> = [];\n    for (let pageNumber = 1; pageNumber <= pageCount; pageNumber++) {\n      if (!deletedPages.has(pageNumber)) {\n        remainingPages.push(pageNumber);\n      }\n    }\n    // The mapper describes the remaining pages the way the user sees them, so pages they've\n    // already reordered or deleted in the sidebar keep their current position.\n    await this.extractPages(pagesMapper.extractPages(remainingPages));\n  }\n\n  /** Expands a list of 1-based page numbers and `[from, to]` ranges into single page numbers. */\n  private static toPageNumbers(pages: PdfPageSelection, pageCount: number, method: string): Set<number> {\n    const pageNumbers = new Set<number>();\n    for (const entry of pages) {\n      const [from, to] = Array.isArray(entry) ? entry : [entry, entry];\n      if (!Number.isInteger(from) || !Number.isInteger(to) || from < 1 || to < from || to > pageCount) {\n        throw new Error(`${method}(): ${JSON.stringify(entry)} is not a valid page number or range. The document has ${pageCount} pages, counting from 1.`);\n      }\n      for (let pageNumber = from; pageNumber <= to; pageNumber++) {\n        pageNumbers.add(pageNumber);\n      }\n    }\n    return pageNumbers;\n  }\n\n  private async toPageInfo(source: PdfMergeSource, insertAfter: number, options: PdfMergeOptions): Promise<PdfPageInfo> {\n    if (typeof ImageBitmap !== 'undefined' && source instanceof ImageBitmap) {\n      return { image: source, insertAfter };\n    }\n\n    let blob: Blob | undefined;\n    if (typeof source === 'string' || source instanceof URL) {\n      const response = await fetch(source);\n      if (!response.ok) {\n        throw new Error(`mergeDocument(): failed to load ${source.toString()}: ${response.status} ${response.statusText}`);\n      }\n      blob = await response.blob();\n    } else if (source instanceof Blob) {\n      blob = source;\n    }\n\n    let bytes: Uint8Array;\n    if (blob) {\n      if (await NgxExtendedPdfViewerService.isImage(blob)) {\n        return { image: await createImageBitmap(blob), insertAfter };\n      }\n      bytes = new Uint8Array(await blob.arrayBuffer());\n    } else if (source instanceof ArrayBuffer) {\n      bytes = new Uint8Array(source);\n    } else if (ArrayBuffer.isView(source)) {\n      bytes = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n    } else {\n      throw new Error('mergeDocument(): the source must be a URL, a Blob, a File, an ArrayBuffer, a typed array, or an ImageBitmap.');\n    }\n\n    const pageInfo: PdfPageInfo = { document: bytes, insertAfter };\n    if (options.includePages) {\n      pageInfo.includePages = NgxExtendedPdfViewerService.toZeroBasedPages(options.includePages);\n    }\n    if (options.excludePages) {\n      pageInfo.excludePages = NgxExtendedPdfViewerService.toZeroBasedPages(options.excludePages);\n    }\n    if (options.password !== undefined) {\n      pageInfo.password = options.password;\n    }\n    return pageInfo;\n  }\n\n  private static async isImage(blob: Blob): Promise<boolean> {\n    if (blob.type) {\n      return blob.type.startsWith('image/');\n    }\n    // Some file pickers don't report a MIME type, so fall back to the PDF magic bytes -\n    // the same check pdf.js does when you drop a file onto the thumbnail sidebar.\n    return (await blob.slice(0, 5).text()) !== '%PDF-';\n  }\n\n  private static toZeroBasedPages(pages: PdfPageSelection): PdfPageSelection {\n    return pages.map((page) => (Array.isArray(page) ? ([page[0] - 1, page[1] - 1] as [number, number]) : page - 1));\n  }\n\n  /** Resolves when the (re)loaded document has been rendered. */\n  private waitForPagesLoaded(): { promise: Promise<void>; cancel: () => void } {\n    const eventBus = this.PDFViewerApplication?.eventBus;\n    if (!eventBus) {\n      return { promise: Promise.resolve(), cancel: () => undefined };\n    }\n    let done: () => void = () => undefined;\n    const promise = new Promise<void>((resolve) => (done = resolve));\n    // If the document fails to load, open() rejects - stop waiting for pages that never come.\n    const onPagesLoaded = () => {\n      eventBus.off('documenterror', onDocumentError);\n      done();\n    };\n    const onDocumentError = () => {\n      eventBus.off('pagesloaded', onPagesLoaded);\n      done();\n    };\n    eventBus.on('pagesloaded', onPagesLoaded, { once: true });\n    eventBus.on('documenterror', onDocumentError, { once: true });\n    return {\n      promise,\n      cancel: () => {\n        eventBus.off('pagesloaded', onPagesLoaded);\n        eventBus.off('documenterror', onDocumentError);\n        done();\n      },\n    };\n  }\n}\n","export enum PdfCursorTools {\n  SELECT = 0,\n  HAND = 1,\n  ZOOM = 2,\n  PAGE_FLIP = -3 // #3140 added by ngx-extended-pdf-viewer (negative to avoid collision with upstream)\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): any;\n  renderView(pageView: any): void; // Added for iOS canvas optimization\n}\n\nexport interface IPDFViewer {\n  maxZoom: number;\n  minZoom: number;\n  maxCanvasPixels: number; // Added for iOS canvas optimization\n  setTextLayerMode(textLayerMode: number): unknown;\n  annotationEditorMode: any;\n  currentPageLabel: string | undefined;\n  currentPageNumber: number;\n  enablePrintAutoRotate: boolean;\n  currentScale: number;\n  currentScaleValue: string | number;\n  pagesRotation: 0 | 90 | 180 | 270;\n  removePageBorders: boolean;\n  renderingQueue: IPDFRenderingQueue;\n  scrollMode: ScrollModeType;\n  pageViewMode: PageViewModeType;\n  spreadMode: 0 | 1 | 2;\n  _pages: Array<PDFPageView>;\n  addPageToRenderQueue(pageIndex: number): boolean;\n  _getVisiblePages(): Array<any>;\n  optionalContentConfigPromise: Promise<OptionalContentConfig> | null;\n  _scrollPageIntoView({ pageDiv, pageSpot, pageNumber }: { pageDiv: HTMLElement; pageSpot: any; pageNumber: number }): void;\n  getSerializedAnnotations(): EditorAnnotation[] | null; // #1783 added by ngx-extended-pdf-viewer\n  addEditorAnnotation(serialized: string | EditorAnnotation): Promise<void>; // #1783 added by ngx-extended-pdf-viewer\n  removeEditorAnnotations(filter?: (serialized: EditorAnnotation) => boolean): void; // #1783 added by ngx-extended-pdf-viewer\n  getPageView(index: number): PDFPageView;\n  destroyBookMode(): void;\n  stopRendering(): void;\n  refresh(noUpdate?: boolean, updateArgs?: object): void;\n  enableFlipByDrag: boolean; // #3140 added by ngx-extended-pdf-viewer\n  pageFlip: { setting: { showPageCorners: boolean; enableFlipByDrag: boolean } } | null; // #3140 added by ngx-extended-pdf-viewer\n}\n","export enum VerbosityLevel {\n  ERRORS = 0,\n  WARNINGS = 1,\n  INFOS = 5,\n}\n","import { Component } from '@angular/core';\n\n/** List of all fields that can be customized */\nconst requiredIds = [\n  'attachmentsView',\n  'authorField',\n  'contextFirstPage',\n  'contextLastPage',\n  'contextPageRotateCcw',\n  'contextPageRotateCw',\n  'creationDateField',\n  'creatorField',\n  'currentOutlineItem',\n  'cursorHandTool',\n  'cursorSelectTool',\n  'customScaleOption',\n  'documentProperties',\n  'documentPropertiesClose',\n  'download',\n  'editorSignatureButton',\n  'primaryEditorFreeText',\n  'primaryEditorHighlight',\n  'primaryEditorInk',\n  'primaryEditorStamp',\n  'editorModeButtons',\n  'editorNone',\n  //  'editorSignatureButton',\n  'editorSignatureAddSignature',\n  'editorStampAddImage',\n  'errorClose',\n  'errorMessage',\n  'errorMoreInfo',\n  'errorShowLess',\n  'errorShowMore',\n  'errorWrapper',\n  'fileNameField',\n  'fileSizeField',\n  'findbar',\n  'findCurrentPage',\n  'findEntireWord',\n  'findFuzzy',\n  'findHighlightAll',\n  'findIgnoreAccents',\n  'findInput',\n  'findInputMultiline',\n  'findMatchCase',\n  'findMatchDiacritics',\n  'findMsg',\n  'findMultipleSearchTexts',\n  'findNext',\n  'findPrevious',\n  'findRange',\n  'findResultsCount',\n  'firstPage',\n  'individualWordsMode',\n  'individualWordsModeLabel',\n  'keywordsField',\n  'lastPage',\n  'linearizedField',\n  'modificationDateField',\n  'movePageUpButton',\n  'movePageDownButton',\n  'next',\n  'numPages',\n  'openFile',\n  'outerContainer',\n  'outerContainer',\n  'outlineOptionsContainer',\n  'outlineView',\n  'pageCountField',\n  'pageNumber',\n  'pageRotateCcw',\n  'pageRotateCw',\n  'pageSizeField',\n  'password',\n  'passwordCancel',\n  'passwordSubmit',\n  'passwordText',\n  'presentationMode',\n  'previous',\n  'printButton',\n  'producerField',\n  'scaleSelect',\n  'scaleSelectContainer',\n  'scrollHorizontal',\n  'scrollPage',\n  'scrollVertical',\n  'scrollWrapped',\n  'secondaryDownload',\n  'secondaryOpenFile',\n  'secondaryPresentationMode',\n  'secondaryPrintButton',\n  'secondaryToolbar',\n  'secondaryToolbarButtonContainer',\n  'secondaryToolbarToggle',\n  'secondaryViewBookmark',\n  'sidebarResizer',\n  'primarySidebarToggle',\n  'spreadEven',\n  'spreadNone',\n  'spreadOdd',\n  'subjectField',\n  'thumbnailView',\n  'titleField',\n  'toolbarViewer',\n  'versionField',\n  'viewAttachments',\n  'viewAttachments',\n  'viewBookmark',\n  'viewerContainer',\n  'viewFind',\n  'viewLayers',\n  'viewOutline',\n  'viewOutline',\n  'viewThumbnail',\n  'viewThumbnail',\n  'primaryZoomIn',\n  'primaryZoomOut',\n  'viewsManagerAddFileButton',\n  'viewsManagerAddFilePicker',\n  'viewsManagerSelectorButton',\n  'viewsManagerSelectorOptions',\n  'viewsManagerHeaderLabel',\n  'viewsManagerStatus',\n  'viewsManagerStatusAction',\n  'viewsManagerStatusActionButton',\n  'viewsManagerStatusActionLabel',\n  'viewsManagerStatusActionLabelContainer',\n  'viewsManagerStatusActionOptions',\n  'viewsManagerStatusActionCopy',\n  'viewsManagerStatusActionCut',\n  'viewsManagerStatusActionDelete',\n  'viewsManagerStatusActionExport',\n  'viewsManagerStatusUndo',\n  'viewsManagerStatusUndoLabel',\n  'viewsManagerStatusUndoButton',\n  'viewsManagerStatusUndoCloseButton',\n  'viewsManagerStatusWarning',\n  'viewsManagerStatusWarningLabel',\n  'viewsManagerStatusWarningCloseButton',\n  'viewsManagerStatusWaiting',\n  'viewsManagerStatusWaitingLabel',\n  'viewsManagerStatusWaitingCloseButton',\n  // #2853 added by ngx-extended-pdf-viewer\n  // IDs required by viewer.js that were missing, needed for [customPdfViewer]\n  'altTextCancel',\n  'altTextDialog',\n  'altTextSave',\n  'altTextSettingsCloseButton',\n  'altTextSettingsDialog',\n  'altTextSettingsLearnMore',\n  'commentManagerCancelButton',\n  'commentManagerDialog',\n  'commentManagerSaveButton',\n  'commentManagerTextInput',\n  'commentManagerTitle',\n  'commentManagerToolbar',\n  'createModelButton',\n  'decorativeButton',\n  'descriptionButton',\n  'descriptionTextarea',\n  'documentPropertiesDialog',\n  'downloadButton',\n  'editorCommentButton',\n  'editorCommentsSidebar',\n  'editorCommentsSidebarCloseButton',\n  'editorCommentsSidebarCount',\n  'editorCommentsSidebarList',\n  'editorCommentsSidebarResizer',\n  'editorCommentsSidebarTitle',\n  'editorFreeTextColor',\n  'editorFreeTextFontSize',\n  'editorFreeHighlightThickness',\n  'editorHighlightShowAll',\n  'editorInkColor',\n  'editorInkOpacity',\n  'editorInkParamsToolbar',\n  'editorInkThickness',\n  'editorUndoBar',\n  'editorUndoBarCloseButton',\n  'editorUndoBarMessage',\n  'editorUndoBarUndoButton',\n  'findMultiple',\n  'mainContainer',\n  'matchRegExp',\n  'newAltTextCancel',\n  'newAltTextCloseButton',\n  'newAltTextDescriptionTextarea',\n  'newAltTextDialog',\n  'newAltTextDisclaimer',\n  'newAltTextDownloadModel',\n  'newAltTextError',\n  'newAltTextImagePreview',\n  'newAltTextLearnMore',\n  'newAltTextNotNow',\n  'newAltTextSave',\n  'newAltTextTitle',\n  'passwordDialog',\n  'toolbarContainer',\n  'viewer',\n  'viewer-alert',\n  // #2853 end of modification by ngx-extended-pdf-viewer\n];\n\n@Component({\n    selector: 'pdf-dummy-components',\n    templateUrl: './pdf-dummy-components.component.html',\n    standalone: false\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        child.remove();\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  // #2853 added by ngx-extended-pdf-viewer\n  /** Fallback for when viewChild can't find the component (e.g. [customPdfViewer]) */\n  public static addMissingStandardWidgetsStatic(): void {\n    const container = document.getElementsByClassName('dummy-pdf-viewer-components')[0] as HTMLElement;\n    if (!container) {\n      return;\n    }\n    while (container.firstChild) {\n      container.firstChild.remove();\n    }\n    requiredIds.forEach((id) => {\n      if (!document.getElementById(id)) {\n        const dummy = document.createElement('span');\n        dummy.id = id;\n        dummy.className = 'invisible dummy-component';\n        container.appendChild(dummy);\n      }\n    });\n    if (!document.getElementById('scaleSelect')) {\n      const dummy = document.createElement('select');\n      dummy.id = 'scaleSelect';\n      dummy.className = 'invisible dummy-component';\n      container.appendChild(dummy);\n    }\n  }\n  // #2853 end of modification by ngx-extended-pdf-viewer\n}\n","<span class=\"invisible dummy-pdf-viewer-components\">\n</span>\n","import { Injectable, NgZone } from '@angular/core';\nimport { IPDFViewerApplication } from '../options/pdf-viewer-application';\nimport { pdfDefaultOptions } from '../options/pdf-default-options';\n\n/**\n * Pure Angular service for iOS Safari pinch-to-zoom optimization\n * Works by dynamically adjusting the maxCanvasPixels option during touch gestures\n * This approach is compatible with the existing mypdf.js MaxCanvasSize class\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class IOSCanvasOptimizationService {\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n  private isInitialized = false;\n  private isPinching = false;\n  private cooldownTimer: any = null;\n  private originalMaxCanvasPixels: number;\n  private reducedMaxCanvasPixels: number;\n\n  // Configuration\n  private readonly cooldownDuration = 2000; // 2 seconds\n  private readonly reductionFactor = 0.25; // Reduce to 25% during pinch\n  private readonly iosMaxCanvasPixels = 5242880; // PDF.js iOS limit (5MP)\n\n  constructor(private readonly ngZone: NgZone) {\n    // Store original canvas size\n    this.originalMaxCanvasPixels = pdfDefaultOptions.maxCanvasPixels || this.getDefaultCanvasSize();\n    this.reducedMaxCanvasPixels = Math.min(\n      this.originalMaxCanvasPixels * this.reductionFactor,\n      this.iosMaxCanvasPixels\n    );\n  }\n\n  /**\n   * Initialize the service with PDFViewerApplication\n   * Called from NgxExtendedPdfViewerComponent.initialize()\n   */\n  initialize(pdfViewerApplication: IPDFViewerApplication): void {\n    if (this.isInitialized || typeof window === 'undefined') return;\n\n    this.PDFViewerApplication = pdfViewerApplication;\n    this.ngZone.runOutsideAngular(() => {\n      this.setupTouchListeners();\n      this.isInitialized = true;\n    });\n  }\n\n  private getDefaultCanvasSize(): number {\n    const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n    const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n    \n    if (isIOS || isMobile) {\n      return this.iosMaxCanvasPixels; // Use PDF.js iOS limit\n    }\n    \n    return 33554432; // PDF.js desktop default (32MP)\n  }\n\n  private setupTouchListeners(): void {\n    // Listen for pinch-to-zoom gestures\n    window.addEventListener('touchstart', (e) => {\n      if (e.touches.length === 2) {\n        this.onPinchStart();\n      }\n    }, { passive: true });\n\n    window.addEventListener('touchend', (e) => {\n      if (e.touches.length < 2 && this.isPinching) {\n        this.onPinchEnd();\n      }\n    }, { passive: true });\n\n    window.addEventListener('touchcancel', () => {\n      if (this.isPinching) {\n        this.onPinchEnd();\n      }\n    }, { passive: true });\n  }\n\n  private onPinchStart(): void {\n    if (this.isPinching) return;\n\n    this.isPinching = true;\n    this.clearCooldown();\n    \n    // Reduce canvas resolution immediately for smooth pinching\n    this.updateCanvasSize(this.reducedMaxCanvasPixels);\n  }\n\n  private onPinchEnd(): void {\n    if (!this.isPinching) return;\n\n    this.isPinching = false;\n    this.startCooldown();\n  }\n\n  private startCooldown(): void {\n    this.clearCooldown();\n    this.cooldownTimer = setTimeout(() => {\n      // Restore full resolution after cooldown\n      this.updateCanvasSize(this.originalMaxCanvasPixels);\n    }, this.cooldownDuration);\n  }\n\n  private clearCooldown(): void {\n    if (this.cooldownTimer) {\n      clearTimeout(this.cooldownTimer);\n      this.cooldownTimer = null;\n    }\n  }\n\n  private updateCanvasSize(maxCanvasPixels: number): void {\n    // Update the pdfDefaultOptions to affect new renders\n    pdfDefaultOptions.maxCanvasPixels = maxCanvasPixels;\n\n    // Update existing PDF.js instances if available\n    if (this.PDFViewerApplication) {\n      // Update main viewer\n      if (this.PDFViewerApplication.pdfViewer) {\n        this.PDFViewerApplication.pdfViewer.maxCanvasPixels = maxCanvasPixels;\n      }\n\n      // Update thumbnail viewer\n      if (this.PDFViewerApplication.pdfThumbnailViewer) {\n        this.PDFViewerApplication.pdfThumbnailViewer.maxCanvasPixels = maxCanvasPixels;\n      }\n\n      // Trigger a gentle re-render of visible pages only during transitions\n      // (not during active pinching to avoid performance issues)\n      if (!this.isPinching) {\n        setTimeout(() => this.triggerVisiblePageRerender(), 100);\n      }\n    }\n  }\n\n  private triggerVisiblePageRerender(): void {\n    if (!this.PDFViewerApplication?.pdfViewer) return;\n\n    const pdfViewer = this.PDFViewerApplication.pdfViewer;\n    \n    // Only re-render currently visible pages to minimize performance impact\n    pdfViewer._pages?.forEach((pageView: any) => {\n      if (pageView && this.isPageVisible(pageView)) {\n        // Gently trigger re-render by invalidating the current render\n        if (pageView.renderingState === 3 /* FINISHED */) {\n          pageView.reset();\n          // Let the normal rendering queue handle the re-render\n          if (pdfViewer.renderingQueue) {\n            pdfViewer.renderingQueue.renderView(pageView);\n          }\n        }\n      }\n    });\n  }\n\n  private isPageVisible(pageView: any): boolean {\n    if (!pageView?.div) return false;\n    \n    const rect = pageView.div.getBoundingClientRect();\n    const viewHeight = window.innerHeight || document.documentElement.clientHeight;\n    const viewWidth = window.innerWidth || document.documentElement.clientWidth;\n    \n    return (\n      rect.bottom >= 0 &&\n      rect.right >= 0 &&\n      rect.top <= viewHeight &&\n      rect.left <= viewWidth\n    );\n  }\n\n  /**\n   * Get current canvas size setting\n   */\n  getCurrentCanvasSize(): number {\n    return pdfDefaultOptions.maxCanvasPixels || this.originalMaxCanvasPixels;\n  }\n\n  /**\n   * Check if currently in pinch mode\n   */\n  isPinchingActive(): boolean {\n    return this.isPinching;\n  }\n\n  /**\n   * Manually override the canvas size (for advanced users)\n   */\n  setCanvasSize(maxCanvasPixels: number): void {\n    this.originalMaxCanvasPixels = maxCanvasPixels;\n    this.reducedMaxCanvasPixels = Math.min(\n      maxCanvasPixels * this.reductionFactor,\n      this.iosMaxCanvasPixels\n    );\n    \n    if (!this.isPinching) {\n      this.updateCanvasSize(maxCanvasPixels);\n    }\n  }\n\n  /**\n   * Cleanup when service is destroyed\n   */\n  destroy(): void {\n    this.clearCooldown();\n    this.isInitialized = false;\n    // Touch listeners will be cleaned up when window is destroyed\n  }\n}","/**\n * Converts a Blob to a Uint8Array.\n *\n * First tries the modern `blob.arrayBuffer()` API. If that is not available\n * (older browsers), falls back to using FileReader.\n *\n * @param blob - The Blob to convert\n * @returns A Promise resolving to the Uint8Array representation of the Blob\n */\nexport async function convertBlobToUint8Array(blob: 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","import { ChangeDetectorRef, EventEmitter, NgZone } from '@angular/core';\nimport { FormDataType } from './ngx-extended-pdf-viewer.component';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport type HtmlFormElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\nexport class NgxFormSupport {\n  /** Maps the internal ids of the annotations of pdf.js to their field name */\n  private formIdToFullFieldName: { [key: string]: string } = {};\n\n  private formIdToField: { [key: string]: HtmlFormElement } = {};\n\n  private radioButtons: { [key: string]: Array<HTMLInputElement> } = {};\n\n  public formData: FormDataType = {};\n\n  public initialFormDataStoredInThePDF: FormDataType = {};\n\n  public formDataChange = new EventEmitter<FormDataType>();\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public ngZone!: NgZone; // set during the initializaion of the PDF viewer\n\n  public cdr!: ChangeDetectorRef; // set during the initializaion of the PDF viewer\n\n  public reset() {\n    this.formData = {};\n    this.formIdToFullFieldName = {};\n  }\n\n  public registerFormSupportWithPdfjs(PDFViewerApplication: IPDFViewerApplication): void {\n    this.PDFViewerApplication = PDFViewerApplication;\n    (globalThis as any).getFormValueFromAngular = (key: string) => this.getFormValueFromAngular(key);\n    (globalThis as any).updateAngularFormValue = (key: string | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement, value: { value: string }) =>\n      this.updateAngularFormValueCalledByPdfjs(key, value);\n    (globalThis as any).registerAcroformField = (\n      id: string,\n      element: HtmlFormElement,\n      value: string | Array<string>,\n      radioButtonValueName: string,\n      initialValueFromPDF: string,\n    ) => this.registerAcroformField(id, element, value, radioButtonValueName, initialValueFromPDF);\n\n    (globalThis as any).registerXFAField = (element: HtmlFormElement, value: { value: string }, initialValueFromPDF: string) =>\n      this.registerXFAField(element, value, initialValueFromPDF);\n  }\n\n  private registerAcroformField(\n    id: string,\n    element: HtmlFormElement,\n    value: null | string | Array<string>,\n    radioButtonValueName: string,\n    initialFormValueFromPDF: string,\n  ): void {\n    const fieldName = element.name;\n    this.formIdToField[id] = element;\n    this.formIdToFullFieldName[id] = fieldName;\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      const groupName = fieldName;\n      this.formIdToFullFieldName[id] = groupName;\n      if (value) {\n        this.formData[groupName] = radioButtonValueName;\n        this.initialFormDataStoredInThePDF[groupName] = initialFormValueFromPDF;\n      }\n      element.setAttribute('exportValue', radioButtonValueName);\n      if (!this.radioButtons[groupName]) {\n        this.radioButtons[groupName] = [];\n      }\n      this.radioButtons[groupName].push(element);\n    } else if (element instanceof HTMLSelectElement) {\n      this.formData[fieldName] = this.getValueOfASelectField(element);\n      this.initialFormDataStoredInThePDF[fieldName] = initialFormValueFromPDF;\n    } else {\n      if (value !== undefined) {\n        this.formData[fieldName] = value;\n      }\n      this.initialFormDataStoredInThePDF[fieldName] = initialFormValueFromPDF;\n    }\n  }\n\n  private registerXFAField(element: HTMLElement, value: { value: string }, initialFormValueFromPDF: string): void {\n    const fullFieldName = this.findFullXFAName(element);\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      const id = element.getAttribute('fieldid') ?? '';\n      // remove the xfa name of the radio button itself form the field name,\n      // because the field name refers to the entire group of relatated radio buttons\n      const groupName = fullFieldName.substring(0, fullFieldName.lastIndexOf('.'));\n      this.formIdToFullFieldName[id] = groupName;\n      this.formData[groupName] = value?.value;\n      this.initialFormDataStoredInThePDF[groupName] = initialFormValueFromPDF;\n\n      if (!this.radioButtons[groupName]) {\n        this.radioButtons[groupName] = [];\n      }\n      this.radioButtons[groupName].push(element);\n    } else if (element instanceof HTMLInputElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else if (element instanceof HTMLSelectElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else if (element instanceof HTMLTextAreaElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else {\n      console.error(\"Couldn't register an XFA form field\", element);\n    }\n  }\n\n  private getValueOfASelectField(selectElement: HTMLSelectElement): null | string | Array<string> {\n    const { options, multiple } = selectElement;\n    if (!multiple) {\n      return options.selectedIndex === -1 ? null : options[options.selectedIndex]['value'];\n    }\n    return Array.prototype.filter.call(options, (option) => option.selected).map((option) => option['value']);\n  }\n\n  private getFormValueFromAngular(element: HTMLElement | string): Object {\n    let key: string;\n    if (element instanceof HTMLElement) {\n      const fieldName = this.findXFAName(element);\n      if (fieldName) {\n        if (this.formData.hasOwnProperty(fieldName)) {\n          key = fieldName;\n        } else {\n          key = this.findFullXFAName(element);\n        }\n      } else {\n        console.error(\"Couldn't find the field name or XFA name of the form field\", element);\n        return { value: null };\n      }\n    } else {\n      key = element;\n    }\n    return { value: this.formData[key] };\n  }\n\n  private findXFAName(element: HTMLElement): string {\n    let parentElement: HTMLElement | null | undefined = element;\n    while (!parentElement.getAttribute('xfaname') && parentElement.parentElement) {\n      parentElement = parentElement.parentElement;\n    }\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      do {\n        parentElement = parentElement?.parentElement;\n      } while (!parentElement?.getAttribute('xfaname') && parentElement);\n    }\n    let fieldName = parentElement?.getAttribute('xfaname');\n    if (!fieldName) {\n      throw new Error(\"Couldn't find the xfaname of the field\");\n    }\n    return fieldName;\n  }\n\n  private findFullXFAName(element: HTMLElement): string {\n    let parentElement = element;\n    let fieldName = '';\n    while (parentElement instanceof HTMLElement && parentElement.parentElement) {\n      const xfaName = parentElement.getAttribute('xfaname');\n      if (xfaName) {\n        fieldName = xfaName + '.' + fieldName;\n      }\n      parentElement = parentElement.parentElement;\n    }\n    if (!fieldName) {\n      throw new Error(\"Couldn't find the xfaname of the field\");\n    }\n    fieldName = fieldName.substring(0, fieldName.length - 1);\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      // ignore the last part of the xfaName because it's actually the value of the field\n      return fieldName.substring(0, fieldName.lastIndexOf('.'));\n    }\n    return fieldName;\n  }\n\n  private updateAngularFormValueCalledByPdfjs(\n    key: string | HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement,\n    value: { value?: string; formattedValue?: string },\n  ): void {\n    if (!this.formData) {\n      this.formData = {};\n    }\n\n    // Ignore formattedValue-only updates to prevent clearing Angular form data\n    // The formattedValue is just for display formatting, not actual user input\n    if (value.formattedValue !== undefined && value.value === undefined) {\n      return;\n    }\n\n    if (typeof key === 'string') {\n      const acroFormKey = this.formIdToFullFieldName[key];\n      const fullKey = acroFormKey ?? Object.values(this.formIdToFullFieldName).find((k) => k === key || k.endsWith('.' + key));\n      if (fullKey) {\n        const field = this.formIdToField[key];\n        let change = this.doUpdateAngularFormValue(field, value, fullKey);\n        if (change) {\n          this.ngZone.run(() => {\n            this.formDataChange.emit(this.formData);\n            this.cdr.detectChanges();\n          });\n        }\n      } else {\n        console.error(\"Couldn't find the field with the name \" + key);\n      }\n    } else {\n      let change = false;\n      const shortFieldName = this.findXFAName(key);\n      if (this.formData.hasOwnProperty(shortFieldName)) {\n        change = this.doUpdateAngularFormValue(key, value, shortFieldName);\n      }\n      const fullFieldName = this.findFullXFAName(key);\n      if (fullFieldName !== shortFieldName) {\n        change ||= this.doUpdateAngularFormValue(key, value, fullFieldName);\n      }\n      if (change) {\n        this.ngZone.run(() => {\n          this.formDataChange.emit(this.formData);\n          this.cdr.detectChanges();\n        });\n      }\n    }\n  }\n\n  private doUpdateAngularFormValue(field: HtmlFormElement, value: { value?: string; formattedValue?: string }, fullKey: string) {\n    let change = false;\n    // Use the actual user input value, not the formatted display value\n    const actualValue = value.value;\n    if (field instanceof HTMLInputElement && field.type === 'checkbox') {\n      const exportValue = field.getAttribute('exportvalue');\n      if (exportValue) {\n        if (actualValue) {\n          if (this.formData[fullKey] !== exportValue) {\n            this.formData[fullKey] = exportValue;\n            change = true;\n          }\n        } else {\n          if (this.formData[fullKey] !== false) {\n            this.formData[fullKey] = false;\n            change = true;\n          }\n        }\n      } else if (this.formData[fullKey] !== actualValue) {\n        this.formData[fullKey] = actualValue ?? '';\n        change = true;\n      }\n    } else if (field instanceof HTMLInputElement && field.type === 'radio') {\n      const exportValue = field.getAttribute('exportvalue') ?? field.getAttribute('xfaon');\n      if (actualValue) {\n        if (this.formData[fullKey] !== exportValue) {\n          this.formData[fullKey] = exportValue;\n          change = true;\n        }\n      }\n    } else if (this.formData[fullKey] !== actualValue) {\n      this.formData[fullKey] = actualValue ?? '';\n      change = true;\n    }\n    return change;\n  }\n\n  public updateFormFieldsInPdfCalledByNgOnChanges(previousFormData: Object) {\n    if (!this.PDFViewerApplication?.pdfDocument?.annotationStorage) {\n      // ngOnChanges calls this method too early - so just ignore it\n      return;\n    }\n\n    for (const key in this.formData) {\n      if (this.formData.hasOwnProperty(key)) {\n        const newValue = (this.formData as any)[key];\n        if (newValue !== (previousFormData as any)[key]) {\n          this.setFieldValueAndUpdateAnnotationStorage(key, newValue);\n        }\n      }\n    }\n\n    for (const key in previousFormData) {\n      if (previousFormData.hasOwnProperty(key) && (previousFormData as any)[key]) {\n        let hasPreviousValue = this.formData.hasOwnProperty(key);\n        if (!hasPreviousValue) {\n          const fullKey = Object.keys(this.formData).find((k) => k === key || k.endsWith('.' + key));\n          if (fullKey) {\n            hasPreviousValue = this.formData.hasOwnProperty(fullKey);\n          }\n        }\n\n        if (!hasPreviousValue) {\n          this.setFieldValueAndUpdateAnnotationStorage(key, null);\n        }\n      }\n    }\n\n    // #2691 modified by ngx-extended-pdf-viewer\n    // After programmatically setting form values, update the baseline for change detection\n    if (this.PDFViewerApplication?.setInitialAnnotationValues) {\n      setTimeout(() => {\n        this.PDFViewerApplication?.setInitialAnnotationValues?.();\n      }, 10); // Small delay to ensure all form updates are processed\n    }\n    // #2691 end of modification by ngx-extended-pdf-viewer\n  }\n\n  private setFieldValueAndUpdateAnnotationStorage(key: string, newValue: any) {\n    const radios = this.findRadioButtonGroup(key);\n    if (radios) {\n      radios.forEach((r) => {\n        const activeValue = r.getAttribute('exportValue') ?? r.getAttribute('xfaon');\n        r.checked = activeValue === newValue;\n      });\n      const updateFromAngular = new CustomEvent('updateFromAngular', {\n        detail: newValue,\n      });\n      radios[0].dispatchEvent(updateFromAngular);\n    } else {\n      const fieldIds = this.findFormIdsFromFieldName(key);\n      if (fieldIds) {\n        fieldIds.forEach((fieldId) => {\n          const htmlField = this.formIdToField[fieldId];\n\n          if (htmlField) {\n            if (htmlField instanceof HTMLInputElement && htmlField.type === 'checkbox') {\n              let activeValue = htmlField.getAttribute('xfaon') ?? htmlField.getAttribute('exportvalue') ?? true;\n              if (newValue === true || newValue === false) {\n                activeValue = true;\n              }\n              htmlField.checked = activeValue === newValue;\n            } else if (htmlField instanceof HTMLSelectElement) {\n              this.populateSelectField(htmlField, newValue);\n            } else {\n              // textareas and input fields\n              htmlField.value = newValue;\n            }\n            const updateFromAngular = new CustomEvent('updateFromAngular', {\n              detail: newValue,\n            });\n            htmlField.dispatchEvent(updateFromAngular);\n          } else {\n            console.error(\"Couldn't set the value of the field\", key);\n          }\n        });\n      }\n    }\n  }\n\n  private populateSelectField(htmlField: HTMLSelectElement, newValue: any) {\n    if (htmlField.multiple) {\n      const { options } = htmlField;\n      const newValueArray = newValue as Array<string>;\n      for (let i = 0; i < options.length; i++) {\n        const option = options.item(i);\n        if (option) {\n          option.selected = newValueArray.some((o) => o === option.value);\n        }\n      }\n    } else {\n      htmlField.value = newValue;\n    }\n  }\n\n  private findFormIdsFromFieldName(fieldName: string): string[] | undefined {\n    if (Object.entries(this.formIdToFullFieldName).length === 0) {\n      // sometimes, ngOnChanges() is called before initializing the PDF file\n      return undefined;\n    }\n    const matchingEntries = Object.entries(this.formIdToFullFieldName).filter((entry) => entry[1] === fieldName || entry[1].endsWith('.' + fieldName));\n    if (matchingEntries.length === 0) {\n      console.log(\"Couldn't find the field \" + fieldName);\n      return undefined;\n    }\n    return matchingEntries.map((e) => e[0]);\n  }\n\n  private findRadioButtonGroup(fieldName: string): Array<HTMLInputElement> | null {\n    const matchingEntries = Object.entries(this.radioButtons).filter((entry) => entry[0].endsWith('.' + fieldName) || entry[0] === fieldName);\n    if (matchingEntries.length === 0) {\n      return null;\n    }\n    if (matchingEntries.length > 1) {\n      console.log(\n        'More than one radio button group name matches this name. Please use the qualified field name',\n        matchingEntries.map((radio) => radio[0]),\n      );\n      console.log('ngx-extended-pdf-viewer uses the first matching field (which may not be the topmost field on your PDF form): ' + matchingEntries[0][0]);\n    }\n    return matchingEntries[0][1];\n  }\n}\n","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); // NOSONAR — keyboard shortcuts are ASCII, charCodeAt is correct\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","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 } 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  constructor() {}\n\n  public init() {\n    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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: string) {\n    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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  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 readonly pdfCspPolicyService: PdfCspPolicyService,\n    @Inject(CSP_NONCE) private readonly 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: Event) => {\n        const { PDFViewerApplication, PDFViewerApplicationOptions, webViewerLoad } = (event as CustomEvent).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\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    if (typeof window === 'undefined') {\n      return; // fast escape for server side rendering\n    }\n    delete (globalThis as any)['setNgxExtendedPdfViewerSource'];\n\n    const w = window as any;\n    delete w.pdfjsLib;\n    document.querySelectorAll('.ngx-extended-pdf-viewer-script').forEach((e) => {\n      (e as HTMLScriptElement).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 Number.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 { 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({\n    name: 'responsiveCSSClass',\n    standalone: false\n})\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({\n    name: 'invertForSecondaryToolbar',\n    standalone: false\n})\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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\n    if (!document) {\n      return;\n    }\n    if (!this.con || !this.el) {\n      this.con = document.createElement('div');\n      this.el = document.createElement('div');\n    }\n    this.con.style.position = 'absolute';\n    this.con.style.width = '0';\n    this.con.style.height = '0';\n    this.con.style.visibility = 'hidden';\n    this.con.style.overflow = 'hidden';\n    this.con.appendChild(this.el);\n  }\n\n  private static pxPerUnit(unit: string): number {\n    if (this.pxPerUnitCache[unit] === undefined) {\n      if (!this.con || !this.el) {\n        this.initElements();\n      }\n      if (!this.con || !this.el) {\n        // dummy implementation for server-side rendering\n        this.pxPerUnitCache[unit] = 1;\n        return 1;\n      }\n      this.el.style.width = this.sample + unit;\n      document.body.appendChild(this.con);\n      const dimension = this.el.getBoundingClientRect();\n      this.con.parentNode!.removeChild(this.con); // NOSONAR — mock objects in tests lack .remove()\n      this.pxPerUnitCache[unit] = dimension.width / this.sample;\n    }\n    return this.pxPerUnitCache[unit];\n  }\n\n  public static toPx(length: any): number {\n    if (length == null || length === '') {\n      throw new TypeError('Error parsing length');\n    }\n    \n    const unitRe = /^\\s*([+-]?[\\d\\.]*)\\s*(.*?)\\s*$/i; // NOSONAR - trim trailing whitespace too\n    const match = unitRe.exec(length);\n    if (match != null && match.length > 2) {\n      const bare = match[1] === '';\n      const val = bare ? 1 : Number(match[1]);\n      const unit = match[2].trim(); // Explicitly trim the unit\n      const valid = !Number.isNaN(val) && unit && (bare || match[1] !== 'NaN');\n      \n      // Validate that we have a proper unit (known CSS units)\n      const knownUnits = ['px', 'em', 'rem', 'pt', 'pc', 'in', 'cm', 'mm', '%', 'vh', 'vw', 'ex', 'ch'];\n      const hasValidUnit = knownUnits.includes(unit);\n      \n      // Only allow bare units (like \"px\" without number) for known units\n      if (valid && hasValidUnit) {\n        return unit === 'px' ? val : this.pxPerUnit(unit) * val;\n      }\n    }\n    throw new TypeError('Error parsing length');\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectorRef, CSP_NONCE, Component, computed, Inject, input, OnDestroy, Optional, Renderer2, signal } 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    standalone: false // NOSONAR — intentional for backward compatibility with NgModule consumers\n})\nexport class DynamicCssComponent implements OnDestroy {\n  public zoom = input<number>(1.0);\n\n  public width = input<number>(3.14159265359);\n\n  public xxs = signal(455);\n\n  public xs = signal(490);\n\n  public sm = signal(560);\n\n  public md = signal(610);\n\n  public lg = signal(660);\n\n  public xl = signal(740);\n\n  public xxl = signal(830);\n\n  public toolbarWidth = signal(0);\n\n  public style = computed(() => {\n    return `\n#toolbarContainer .always-in-secondary-menu {\n  display: none;\n}\n\n/* #3105 fixed the layout of the find bar */\n.findbar {\n  max-width: ${this.toolbarWidth() > 0 ? this.toolbarWidth() + 'px' : '100%'};\n}\n/* #3105 end of fix */\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@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    private readonly pdfCspPolicyService: PdfCspPolicyService,\n    @Inject(CSP_NONCE) @Optional() private readonly nonce: string | null | undefined,\n    private readonly cdr: ChangeDetectorRef\n  ) {\n    // Width is now an input signal and will be provided by the parent component\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\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    // #3105 fixed the layout of the find bar\n    // Store the toolbar width for findbar max-width calculation\n    this.toolbarWidth.set(toolbarWidthInPixels);\n    // #3105 end of fix\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.set(scaleFactor * PdfBreakpoints.xs);\n    this.sm.set(scaleFactor * PdfBreakpoints.sm);\n    this.md.set(scaleFactor * PdfBreakpoints.md);\n    this.lg.set(scaleFactor * PdfBreakpoints.lg);\n    this.xl.set(scaleFactor * PdfBreakpoints.xl);\n    this.xxl.set(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(this.asyncWithCD(() => {\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            // Clear both height and minHeight so Angular's [style.height] binding\n            // re-evaluates. Don't directly set zoom.style.height — that bypasses\n            // Angular's change detection and causes the binding to go stale.\n            ngxExtendedPdfViewer.height = undefined;\n            ngxExtendedPdfViewer.minHeight = undefined;\n            ngxExtendedPdfViewer.autoHeight = true;\n            ngxExtendedPdfViewer.markForCheck();\n            // checkHeight will recalculate and set minHeight to the correct value\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 ? Number.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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\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 globalThis.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 availableBottom = this.findAvailableBottom(container);\n    const rect = container.getBoundingClientRect();\n    const top = rect.top;\n    let maximumHeight = availableBottom - top;\n    const padding = this.calculateBorderMargin(container);\n    maximumHeight -= padding;\n    ngxExtendedPdfViewer.minHeight = maximumHeight > 100 ? `${maximumHeight}px` : '100px';\n    ngxExtendedPdfViewer.markForCheck();\n  }\n\n  /**\n   * Walks up the DOM to find the nearest ancestor with constrained overflow (hidden/auto/scroll)\n   * and an explicit height. This ensures the viewer respects parent container bounds\n   * (e.g., a mat-card-content with height: 80vh) instead of always using the full viewport.\n   * Falls back to window.innerHeight if no constraining ancestor is found.\n   */\n  private findAvailableBottom(element: HTMLElement): number {\n    let parent = element.parentElement;\n    while (parent && parent !== document.body && parent !== document.documentElement) {\n      const style = globalThis.window.getComputedStyle(parent);\n      const overflowY = style.overflowY;\n      if ((overflowY === 'hidden' || overflowY === 'auto' || overflowY === 'scroll')\n          && style.height !== 'auto' && style.height !== '') {\n        return parent.getBoundingClientRect().bottom;\n      }\n      parent = parent.parentElement;\n    }\n    return globalThis.window.innerHeight;\n  }\n\n  private calculateBorderMargin(container: HTMLElement | null): number {\n    if (container) {\n      const computedStyle = globalThis.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.remove();\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    standalone: false\n})\nexport class PdfAcroformDefaultThemeComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-add-signature-dialog',\n    templateUrl: './pdf-add-signature-dialog.component.html',\n    styleUrl: './pdf-add-signature-dialog.component.css',\n    standalone: false\n})\nexport class AddSignatureDialogComponent {}\n","<dialog class=\"dialog signatureDialog\" id=\"addSignatureDialog\" aria-labelledby=\"addSignatureDialogLabel\">\n  <span id=\"addSignatureDialogLabel\" data-l10n-id=\"pdfjs-editor-add-signature-dialog-label\"></span>\n  <div id=\"addSignatureContainer\" class=\"mainContainer\">\n    <div class=\"title\">\n      <span role=\"sectionhead\" data-l10n-id=\"pdfjs-editor-add-signature-dialog-title\" tabindex=\"0\"></span>\n    </div>\n    <div role=\"tablist\" id=\"addSignatureOptions\">\n      <button id=\"addSignatureTypeButton\" type=\"button\" role=\"tab\" aria-selected=\"true\"\n        aria-controls=\"addSignatureTypeContainer\" data-l10n-id=\"pdfjs-editor-add-signature-type-button\"\n        tabindex=\"0\"></button>\n      <button id=\"addSignatureDrawButton\" type=\"button\" role=\"tab\" aria-selected=\"false\"\n        aria-controls=\"addSignatureDrawContainer\" data-l10n-id=\"pdfjs-editor-add-signature-draw-button\"\n        tabindex=\"0\"></button>\n      <button id=\"addSignatureImageButton\" type=\"button\" role=\"tab\" aria-selected=\"false\"\n        aria-controls=\"addSignatureImageContainer\" data-l10n-id=\"pdfjs-editor-add-signature-image-button\"\n        tabindex=\"-1\"></button>\n    </div>\n    <div id=\"addSignatureActionContainer\" data-selected=\"type\">\n      <div id=\"addSignatureTypeContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureTypeContainer\">\n        <input id=\"addSignatureTypeInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-type-input\" tabindex=\"0\">\n      </div>\n      <div id=\"addSignatureDrawContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureDrawButton\" tabindex=\"-1\">\n        <svg id=\"addSignatureDraw\" xmlns=\"http://www.w3.org/2000/svg\"\n          aria-labelledby=\"addSignatureDrawPlaceholder\"></svg>\n        <span id=\"addSignatureDrawPlaceholder\" data-l10n-id=\"pdfjs-editor-add-signature-draw-placeholder\"></span>\n        <div id=\"thickness\">\n          <div>\n            <label for=\"addSignatureDrawThickness\"\n              data-l10n-id=\"pdfjs-editor-add-signature-draw-thickness-range-label\"></label>\n            <input type=\"range\" id=\"addSignatureDrawThickness\" min=\"1\" max=\"5\" step=\"1\" value=\"1\"\n              data-l10n-id=\"pdfjs-editor-add-signature-draw-thickness-range\" data-l10n-args='{ \"thickness\": 1 }'\n              tabindex=\"0\">\n          </div>\n        </div>\n      </div>\n      <div id=\"addSignatureImageContainer\" role=\"tabpanel\" aria-labelledby=\"addSignatureImageButton\" tabindex=\"-1\">\n        <svg id=\"addSignatureImage\" xmlns=\"http://www.w3.org/2000/svg\"\n          aria-labelledby=\"addSignatureImagePlaceholder\"></svg>\n        <div id=\"addSignatureImagePlaceholder\">\n          <span data-l10n-id=\"pdfjs-editor-add-signature-image-placeholder\"></span>\n          <label id=\"addSignatureImageBrowse\" for=\"addSignatureFilePicker\" tabindex=\"0\">\n            <a data-l10n-id=\"pdfjs-editor-add-signature-image-browse-link\"></a>\n          </label>\n          <input id=\"addSignatureFilePicker\" type=\"file\">\n        </div>\n      </div>\n      <div id=\"addSignatureControls\">\n        <div id=\"horizontalContainer\">\n          <div id=\"addSignatureDescriptionContainer\">\n            <label for=\"addSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n            <span id=\"addSignatureDescription\" class=\"inputWithClearButton\">\n              <input id=\"addSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\"\n                tabindex=\"0\">\n              <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n            </span>\n          </div>\n          <button id=\"clearSignatureButton\" type=\"button\" data-l10n-id=\"pdfjs-editor-add-signature-clear-button\"\n            tabindex=\"0\"><span data-l10n-id=\"pdfjs-editor-add-signature-clear-button-label\"></span></button>\n        </div>\n        <div id=\"addSignatureSaveContainer\">\n          <input type=\"checkbox\" id=\"addSignatureSaveCheckbox\" checked=\"true\">\n          <label for=\"addSignatureSaveCheckbox\" data-l10n-id=\"pdfjs-editor-add-signature-save-checkbox\"></label>\n          <span></span>\n          <span id=\"addSignatureSaveWarning\" data-l10n-id=\"pdfjs-editor-add-signature-save-warning-message\"></span>\n        </div>\n      </div>\n      <div id=\"addSignatureError\" hidden=\"true\" class=\"messageBar\">\n        <div>\n          <div>\n            <span class=\"title\" data-l10n-id=\"pdfjs-editor-add-signature-image-upload-error-title\"></span>\n            <span class=\"description\" data-l10n-id=\"pdfjs-editor-add-signature-image-upload-error-description\"></span>\n          </div>\n          <button id=\"addSignatureErrorCloseButton\" class=\"closeButton\" type=\"button\" tabindex=\"0\"><span\n              data-l10n-id=\"pdfjs-editor-add-signature-error-close-button\"></span></button>\n        </div>\n      </div>\n      <div class=\"dialogButtonsGroup\">\n        <button id=\"addSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n            data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n        <button id=\"addSignatureAddButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span\n            data-l10n-id=\"pdfjs-editor-add-signature-add-button\"></span></button>\n      </div>\n    </div>\n  </div>\n</dialog>","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'pdf-comment-manager-dialog',\n  templateUrl: './pdf-comment-manager-dialog.component.html',\n  standalone: false,\n})\nexport class PdfCommentManagerDialogComponent {}\n","<dialog class=\"dialog commentManager\" id=\"commentManagerDialog\" aria-labelledby=\"commentManagerTitle\">\n  <div class=\"mainContainer\">\n    <div class=\"title\" id=\"commentManagerToolbar\">\n      <span id=\"commentManagerTitle\" role=\"sectionhead\" data-l10n-id=\"pdfjs-editor-edit-comment-dialog-title-when-adding\"></span>\n    </div>\n    <textarea id=\"commentManagerTextInput\" data-l10n-id=\"pdfjs-editor-edit-comment-dialog-text-input\" tabindex=\"0\"></textarea>\n    <div class=\"dialogButtonsGroup\">\n      <button id=\"commentManagerCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\">\n        <span data-l10n-id=\"pdfjs-editor-edit-comment-dialog-cancel-button\"></span>\n      </button>\n      <button id=\"commentManagerSaveButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\">\n        <span data-l10n-id=\"pdfjs-editor-edit-comment-dialog-save-button-when-adding\"></span>\n      </button>\n    </div>\n  </div>\n</dialog>\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    standalone: false\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    standalone: false\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    standalone: false\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    standalone: false\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>\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    standalone: false\n})\nexport class PdfDocumentPropertiesDialogComponent {}\n","<dialog id=\"documentPropertiesDialog\">\n  <div class=\"row\">\n    <span id=\"fileNameLabel\" data-l10n-id=\"pdfjs-document-properties-file-name\">File name:</span>\n    <p id=\"fileNameField\" aria-labelledby=\"fileNameLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"fileSizeLabel\" data-l10n-id=\"pdfjs-document-properties-file-size\">File size:</span>\n    <p id=\"fileSizeField\" aria-labelledby=\"fileSizeLabel\">-</p>\n  </div>\n  <div class=\"separator\"></div>\n  <div class=\"row\">\n    <span id=\"titleLabel\" data-l10n-id=\"pdfjs-document-properties-title\">Title:</span>\n    <p id=\"titleField\" aria-labelledby=\"titleLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"authorLabel\" data-l10n-id=\"pdfjs-document-properties-author\">Author:</span>\n    <p id=\"authorField\" aria-labelledby=\"authorLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"subjectLabel\" data-l10n-id=\"pdfjs-document-properties-subject\">Subject:</span>\n    <p id=\"subjectField\" aria-labelledby=\"subjectLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"keywordsLabel\" data-l10n-id=\"pdfjs-document-properties-keywords\">Keywords:</span>\n    <p id=\"keywordsField\" aria-labelledby=\"keywordsLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"creationDateLabel\" data-l10n-id=\"pdfjs-document-properties-creation-date\">Creation Date:</span>\n    <p id=\"creationDateField\" aria-labelledby=\"creationDateLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"modificationDateLabel\" data-l10n-id=\"pdfjs-document-properties-modification-date\">Modification Date:</span>\n    <p id=\"modificationDateField\" aria-labelledby=\"modificationDateLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"creatorLabel\" data-l10n-id=\"pdfjs-document-properties-creator\">Creator:</span>\n    <p id=\"creatorField\" aria-labelledby=\"creatorLabel\">-</p>\n  </div>\n  <div class=\"separator\"></div>\n  <div class=\"row\">\n    <span id=\"producerLabel\" data-l10n-id=\"pdfjs-document-properties-producer\">PDF Producer:</span>\n    <p id=\"producerField\" aria-labelledby=\"producerLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"versionLabel\" data-l10n-id=\"pdfjs-document-properties-version\">PDF Version:</span>\n    <p id=\"versionField\" aria-labelledby=\"versionLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"pageCountLabel\" data-l10n-id=\"pdfjs-document-properties-page-count\">Page Count:</span>\n    <p id=\"pageCountField\" aria-labelledby=\"pageCountLabel\">-</p>\n  </div>\n  <div class=\"row\">\n    <span id=\"pageSizeLabel\" data-l10n-id=\"pdfjs-document-properties-page-size\">Page Size:</span>\n    <p id=\"pageSizeField\" aria-labelledby=\"pageSizeLabel\">-</p>\n  </div>\n  <div class=\"separator\"></div>\n  <div class=\"row\">\n    <span id=\"linearizedLabel\" data-l10n-id=\"pdfjs-document-properties-linearized\">Fast Web View:</span>\n    <p id=\"linearizedField\" aria-labelledby=\"linearizedLabel\">-</p>\n  </div>\n  <div class=\"buttonRow\">\n    <button id=\"documentPropertiesClose\" class=\"dialogButton\" type=\"button\"><span data-l10n-id=\"pdfjs-document-properties-close-button\">Close</span></button>\n  </div>\n</dialog>\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-edit-signature-dialog',\n    templateUrl: './pdf-edit-signature-dialog.component.html',\n    styleUrl: './pdf-edit-signature-dialog.component.css',\n    standalone: false\n})\nexport class EditSignatureDialogComponent {}\n","<dialog class=\"dialog signatureDialog\" id=\"editSignatureDescriptionDialog\"\n  aria-labelledby=\"editSignatureDescriptionTitle\">\n  <div class=\"mainContainer\">\n    <div class=\"title\">\n      <span id=\"editSignatureDescriptionTitle\" role=\"sectionhead\"\n        data-l10n-id=\"pdfjs-editor-edit-signature-dialog-title\" tabindex=\"0\"></span>\n    </div>\n    <div id=\"editSignatureDescriptionAndView\">\n      <div id=\"editSignatureDescriptionContainer\">\n        <label for=\"editSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n        <span id=\"editSignatureDescription\" class=\"inputWithClearButton\">\n          <input id=\"editSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\"\n            tabindex=\"0\">\n          <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n        </span>\n      </div>\n      <svg id=\"editSignatureView\" xmlns=\"http://www.w3.org/2000/svg\"></svg>\n    </div>\n    <div class=\"dialogButtonsGroup\">\n      <button id=\"editSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n      <button id=\"editSignatureUpdateButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-edit-signature-update-button\"></span></button>\n    </div>\n  </div>\n</dialog>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-error-message',\n    templateUrl: './pdf-error-message.component.html',\n    standalone: false\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    standalone: false\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    standalone: false\n})\nexport class PdfFindEntireWordComponent {}\n","<div class=\"toggleButton toolbarLabel\">\n  <input type=\"checkbox\" id=\"findEntireWord\" tabindex=\"0\" />\n  <label for=\"findEntireWord\" data-l10n-id=\"pdfjs-find-entire-word-checkbox-label\"></label>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-find-highlight-all',\n    templateUrl: './pdf-find-highlight-all.component.html',\n    styleUrls: ['./pdf-find-highlight-all.component.css'],\n    standalone: false\n})\nexport class PdfFindHighlightAllComponent {}\n","<div class=\"toggleButton toolbarLabel\">\n  <input type=\"checkbox\" id=\"findHighlightAll\" tabindex=\"0\" />\n  <label for=\"findHighlightAll\" data-l10n-id=\"pdfjs-find-highlight-checkbox\"></label>\n</div>\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    standalone: false\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    standalone: false\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    standalone: false\n})\nexport class PdfSearchInputFieldComponent {}\n","<span class=\"loadingInput end toolbarHorizontalGroup\">\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    standalone: false\n})\nexport class PdfFindInputAreaComponent {\n  public customFindbarInputArea = input<TemplateRef<any> | undefined>(undefined);\n}\n","@if (!customFindbarInputArea()) {\n  <div id=\"findbarInputContainer\" class=\"toolbarHorizontalGroup\">\n    <pdf-search-input-field></pdf-search-input-field>\n    <div class=\"toolbarHorizontalGroup\">\n      <pdf-find-previous></pdf-find-previous>\n      <div class=\"splitToolbarButtonSeparator\"></div>\n      <pdf-find-next></pdf-find-next>\n    </div>\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    standalone: false\n})\nexport class PdfFindMatchCaseComponent {}\n","<div class=\"toggleButton toolbarLabel\">\n  <input type=\"checkbox\" id=\"findMatchCase\" tabindex=\"0\" />\n  <label for=\"findMatchCase\" data-l10n-id=\"pdfjs-find-match-case-checkbox-label\"></label>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-find-multiple',\n    templateUrl: './pdf-find-multiple.component.html',\n    standalone: false\n})\nexport class PdfFindMultipleComponent {}\n","<div class=\"toggleButton toolbarLabel\">\n  <input type=\"checkbox\" id=\"findMultiple\" tabindex=\"0\" />\n  <label for=\"findMultiple\" data-l10n-id=\"pdfjs-find-multiple-checkbox-label\"></label>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-find-regexp',\n    templateUrl: './pdf-find-regexp.component.html',\n    standalone: false\n})\nexport class PdfFindRegExpComponent {}\n","<div class=\"toggleButton toolbarLabel\">\n  <input type=\"checkbox\" id=\"matchRegExp\" tabindex=\"0\" />\n  <label for=\"matchRegExp\" data-l10n-id=\"pdfjs-find-regexp-checkbox-label\"></label>\n</div>","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    standalone: false\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    standalone: false\n})\nexport class PdfMatchDiacriticsComponent {}\n","<div class=\"toggleButton toolbarLabel\">\n  <input type=\"checkbox\" id=\"findMatchDiacritics\" tabindex=\"0\" />\n  <label for=\"findMatchDiacritics\" data-l10n-id=\"pdfjs-find-match-diacritics-checkbox-label\"></label>\n</div>\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    standalone: false\n})\nexport class PdfFindbarComponent {\n  public showFindButton = input<ResponsiveVisibility>(true);\n\n  public mobileFriendlyZoomScale = input.required<number>();\n\n  public findbarLeft = input<string | undefined>(undefined);\n\n  public findbarTop = input<string | undefined>(undefined);\n\n  /* UI templates */\n  public customFindbarInputArea = input<TemplateRef<any> | undefined>(undefined);\n\n  public customFindbar = input<TemplateRef<any> | undefined>(undefined);\n\n  public customFindbarButtons = input<TemplateRef<any> | undefined>(undefined);\n\n  public showFindHighlightAll = input<boolean>(true);\n\n  public showFindMatchCase = input<boolean>(true);\n\n  public showFindEntireWord = input<boolean>(true);\n\n  public showFindMatchDiacritics = input<boolean>(true);\n\n  public showFindResultsCount = input<boolean>(true);\n\n  public showFindMessages = input<boolean>(true);\n\n  public showFindMultiple = input<boolean>(true);\n\n  public showFindRegexp = input<boolean>(true);\n}\n","<ng-container [ngTemplateOutlet]=\"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() || 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\n  <div id=\"findbarOptionsOneContainer\" class=\"toolbarHorizontalGroup\">\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  </div>\n\n  <div id=\"findbarOptionsTwoContainer\" class=\"toolbarHorizontalGroup\">\n    <pdf-match-diacritics [class.hidden]=\"!showFindMatchDiacritics()\"></pdf-match-diacritics>\n    <pdf-find-entire-word [class.hidden]=\"!showFindEntireWord()\"></pdf-find-entire-word>\n  </div>\n\n  <div id=\"findbarOptionsThreeContainer\" class=\"toolbarHorizontalGroup\" [class.hidden]=\"!showFindMultiple() && !showFindRegexp()\">\n    <pdf-find-multiple [class.hidden]=\"!showFindMultiple()\"></pdf-find-multiple>\n    <pdf-find-regexp [class.hidden]=\"!showFindRegexp()\"></pdf-find-regexp>\n  </div>\n\n  <div id=\"findbarMessageContainer\" class=\"toolbarHorizontalGroup\" aria-live=\"polite\">\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  </div>\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    standalone: false\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    standalone: false\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    standalone: false\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 { 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 | undefined;\n  action?: (() => void) | undefined;\n  eventBusName?: string | undefined;\n  closeOnClick?: boolean | undefined;\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 secondaryMenuId = button.secondaryMenuId();\n    const id = 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    const toolbarId = button.primaryToolbarId();\n    if (toolbarId.startsWith('primary')) {\n      return toolbarId.replace('primary', 'secondary');\n    }\n    return 'secondary' + toolbarId.substring(0, 1).toUpperCase() + toolbarId.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 { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n  name: 'sanitizedHtml',\n  standalone: false\n})\nexport class SanitizedHtmlPipe implements PipeTransform {\n  constructor(private readonly sanitizer: DomSanitizer) {}\n\n  transform(value: string | undefined): SafeHtml | undefined {\n    if (!value) return undefined;\n    // The HTML is already validated in imageHtml computed signal (only allowed SVG tags)\n    // We just need to bypass Angular's automatic sanitization\n    return this.sanitizer.bypassSecurityTrustHtml(value); // NOSONAR - input is pre-validated SVG from imageHtml (only allowed SVG tags)\n  }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  effect,\n  ElementRef,\n  HostListener,\n  Inject,\n  input,\n  OnDestroy,\n  output,\n  PLATFORM_ID,\n  TemplateRef,\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    standalone: false\n})\nexport class PdfSecondaryToolbarComponent implements AfterViewInit, OnDestroy {\n  public customSecondaryToolbar = input<TemplateRef<any> | undefined>(undefined);\n\n  public secondaryToolbarTop = input<any>(undefined);\n\n  public mobileFriendlyZoomScale = input.required<number>();\n\n  public localizationInitialized = input.required<boolean>();\n\n  public spreadChange = output<'off' | 'even' | 'odd'>();\n\n  public disablePreviousPage = true;\n\n  public disableNextPage = true;\n\n  public get secondaryToolbarMaxHeight(): string {\n    if (typeof window === 'undefined') {\n      return 'auto';\n    }\n    const topValue = this.secondaryToolbarTop() || '33px';\n    const topPx = Number.parseFloat(topValue.toString());\n    const scale = this.mobileFriendlyZoomScale();\n\n    // Find the nearest .zoom container\n    const secondaryToolbar = this.element.nativeElement.querySelector('#secondaryToolbar');\n    const zoomContainer = secondaryToolbar?.closest('.zoom') as HTMLElement;\n    const containerHeight = zoomContainer?.clientHeight || window.innerHeight;\n\n    // Calculate available space in the container, then convert to unscaled coordinates\n    // since the parent has transform: scale() applied\n    const availableHeight = containerHeight - topPx - 20; // 20px for margins and spacing\n    const unscaledMaxHeight = availableHeight / scale;\n    return `${unscaledMaxHeight}px`;\n  }\n\n  private classMutationObserver: MutationObserver | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(\n    private readonly element: ElementRef,\n    public notificationService: PDFNotificationService,\n    @Inject(PLATFORM_ID) private readonly platformId: Object,\n    public pdfShyButtonService: PdfShyButtonService,\n    private readonly ngxExtendedPdfViewerService: NgxExtendedPdfViewerService,\n    private readonly cdr: ChangeDetectorRef\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n\n    // Replace ngOnChanges with effect - check visibility when any input changes\n    effect(() => {\n      // Track all inputs to trigger on any change\n      this.customSecondaryToolbar();\n      this.secondaryToolbarTop();\n      this.mobileFriendlyZoomScale();\n      this.localizationInitialized();\n\n      // Same logic as ngOnChanges\n      setTimeout(this.asyncWithCD(() => this.checkVisibility()));\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('pagechanging', () => {\n      this.updateUIState();\n    }, opts);\n    this.PDFViewerApplication?.eventBus.on('pagerendered', () => {\n      this.updateUIState();\n    }, opts);\n  }\n\n  public updateUIState(): void {\n    setTimeout(this.asyncWithCD(() => {\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  @HostListener('window:resize')\n  public onResize() {\n    setTimeout(this.asyncWithCD(() => 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.asyncWithCD(() => this.checkVisibility())();\n              break;\n            }\n          } else if (mutation.type === 'childList') {\n            this.asyncWithCD(() => this.checkVisibility())();\n            break;\n          }\n        }\n      });\n\n      this.classMutationObserver.observe(targetNode, config);\n\n      // Perform initial visibility check after view is initialized\n      setTimeout(this.asyncWithCD(() => this.checkVisibility()), 0);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.classMutationObserver) {\n      this.classMutationObserver.disconnect();\n      this.classMutationObserver = undefined;\n    }\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    // #3135 end of modification by ngx-extended-pdf-viewer\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\n    if (f) {\n      const g = f.children.item(0);\n\n      if (g && g instanceof HTMLElement) {\n        visibleButtons = this.checkVisibilityRecursively(g);\n      }\n    }\n\n    this.ngxExtendedPdfViewerService.secondaryMenuIsEmpty.set(visibleButtons === 0);\n  }\n\n  private checkVisibilityRecursively(e: HTMLElement): number {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return 0;\n    }\n    // Only check inline styles and CSS classes, NOT computed styles\n    // because the secondary toolbar is hidden by default (it's a popup)\n    // and all children inherit display:none from the parent\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    if (this.isResponsiveClassHidden(e)) {\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  /**\n   * Checks if a responsive visibility class (e.g. visibleSmallView) is currently\n   * hidden at the current viewport width. These classes make buttons visible only\n   * at smaller viewports via CSS media queries (max-width). We can't use\n   * getComputedStyle because the secondary toolbar itself is hidden, so we\n   * extract the actual breakpoint from the dynamic CSS and compare it to the\n   * current viewport width.\n   */\n  private isResponsiveClassHidden(e: HTMLElement): boolean {\n    const responsiveClasses = [\n      'visibleXXSView', 'visibleTinyView', 'visibleSmallView',\n      'visibleMediumView', 'visibleLargeView', 'visibleXLView', 'visibleXXLView',\n    ];\n    for (const cls of responsiveClasses) {\n      if (e.classList.contains(cls)) {\n        return !this.isResponsiveBreakpointActive(cls);\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Checks if the given responsive class is currently active by evaluating\n   * the matching CSS @media rule from the dynamic stylesheet.\n   */\n  private isResponsiveBreakpointActive(cls: string): boolean {\n    const style = document.getElementById('pdf-dynamic-css') as HTMLStyleElement;\n    if (!style?.sheet) {\n      return false;\n    }\n    try {\n      const rules = style.sheet.cssRules;\n      for (let i = 0; i < rules.length; i++) {\n        const rule = rules[i];\n        if (rule instanceof CSSMediaRule) {\n          // Check if this media rule contains our responsive class\n          const innerRules = rule.cssRules;\n          for (let j = 0; j < innerRules.length; j++) {\n            const innerRule = innerRules[j];\n            if (innerRule instanceof CSSStyleRule && innerRule.selectorText.includes(cls)) {\n              // Use matchMedia to check if this media query is currently active\n              return window.matchMedia(rule.conditionText).matches;\n            }\n          }\n        }\n      }\n    } catch {\n      // CSSOM may throw on cross-origin stylesheets; not applicable here\n    }\n    return false;\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() || 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\" [style.maxHeight]=\"secondaryToolbarMaxHeight\">\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 || null\"\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 | sanitizedHtml\"></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 || null\">{{ button.title }}</span>\n      </button>\n      }\n    </div>\n  </div>\n</ng-template>","import { Component, computed, effect, 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';\n// #3111 modified by ngx-extended-pdf-viewer\n// Updated to include new PDF.js v5.4.530+ properties\ndeclare class PDFThumbnailView {\n  anchor: HTMLAnchorElement;\n  div: HTMLElement;\n  ring: HTMLElement;\n  canvasWidth: number;\n  canvasHeight: number;\n  image: HTMLImageElement;\n  checkbox: HTMLInputElement;\n}\n// #3111 end of modification by ngx-extended-pdf-viewer\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    standalone: false\n})\nexport class PdfSidebarContentComponent implements OnDestroy {\n  public customThumbnail = input<TemplateRef<any> | undefined>(undefined);\n\n  public hideSidebarToolbar = input<boolean>(false);\n\n  public mobileFriendlyZoomScale = input<number>(1.0);\n\n  public defaultThumbnail = viewChild.required<TemplateRef<any>>('defaultThumbnail');\n\n  private linkService: PDFLinkService | undefined;\n\n  public thumbnailDrawn = output<PdfThumbnailDrawnEvent>();\n\n  private PDFViewerApplication!: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public top = computed(() => {\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    /* istanbul ignore next -- SSR guard, untestable in JSDOM */\n    if (typeof window !== 'undefined') {\n      effect(() => {\n        this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n        if (this.PDFViewerApplication) {\n          // #3135 modified by ngx-extended-pdf-viewer\n          this.eventBusAbortController?.abort();\n          this.eventBusAbortController = new AbortController();\n          const opts = { signal: this.eventBusAbortController.signal };\n          // #3135 end of modification by ngx-extended-pdf-viewer\n          // #3216 eventBus may be undefined when the init signal fires before PDFViewerApplication finishes wiring up.\n          this.PDFViewerApplication.eventBus?.on('rendercustomthumbnail', this.createThumbnail.bind(this), opts);\n        }\n      });\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.linkService = undefined;\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n\n  /* istanbul ignore next -- requires real Angular template and embedded view, untestable in unit tests */\n  private createThumbnail({\n    pdfThumbnailView: _pdfThumbnailView, // #3111: Not used - PDF.js v5.4.530+ populates this after we append the element\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    // #3111 modified by ngx-extended-pdf-viewer\n    // PDF.js v5.4.530+ uses direct div structure without anchor wrapper\n    // Add the thumbnail ID class (e.g., \"thumbnail1\") while keeping existing \"thumbnail\" class\n    newElement.classList.add(`thumbnail${id}`);\n    // #3255 pdf.js renamed pdfjs-thumb-page-title to pdfjs-thumb-page-title1 (it now includes the page count)\n    newElement.setAttribute('data-l10n-id', 'pdfjs-thumb-page-title1'); // NOSONAR — matches pdf.js upstream pattern which uses setAttribute for l10n attributes\n    newElement.setAttribute('data-l10n-args', thumbPageTitlePromiseOrPageL10nArgs); // NOSONAR\n\n    this.replacePageNumberEverywhere(newElement, id.toString());\n\n    // Handle click on the thumbnail div itself (but not on checkboxes)\n    newElement.onclick = (event) => {\n      if (event.target instanceof HTMLInputElement) {\n        return; // Let pdf.js handle checkbox clicks\n      }\n      linkService.page = id;\n      return false;\n    };\n\n    // PDF.js will find this element and set pdfThumbnailView.div = this element\n    // We don't need to set it here as PDF.js does it via querySelector(`.thumbnail${id}`)\n    // #3111 end of modification\n\n    // #3111 modified by ngx-extended-pdf-viewer\n    // PDF.js v5.4.530+ will query for image and checkbox itself after the element is appended\n    container.appendChild(newElement);\n    // After appending, PDF.js will find this element by class `.thumbnail${id}` and set div/image/checkbox properties\n    const img: HTMLImageElement | undefined = newElement.getElementsByTagName('img')[0];\n    // #3111 end of modification by ngx-extended-pdf-viewer\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","<!-- #2984 modified by ngx-extended-pdf-viewer -->\n<!-- PDF.js v5.6.205 uses #viewsManagerContent as the scrollable container -->\n<div id=\"viewsManagerContent\" tabindex=\"-1\">\n  <div id=\"thumbnailsView\" (keydown)=\"onKeyDown($event)\"></div>\n  <!-- #3113 modified by ngx-extended-pdf-viewer - Add treeView class for proper outline/layers tree styling -->\n  <div id=\"outlinesView\" class=\"treeView hidden\"></div>\n  <div id=\"attachmentsView\" class=\"hidden\"></div>\n  <div id=\"layersView\" class=\"treeView hidden\"></div>\n  <!-- #3113 end of modification by ngx-extended-pdf-viewer -->\n</div>\n<!-- #2984 end of modification by ngx-extended-pdf-viewer -->\n\n<!-- Updated to match PDF.js v5.6.205 thumbnail structure:\n     div.thumbnail > div.thumbnailImageContainer > img\n     Checkbox is a sibling of thumbnailImageContainer, added by pdf.js when enableSplitMerge is true.\n     page-number attribute is set on both .thumbnail and .thumbnailImageContainer for page number badge. -->\n<ng-template #defaultThumbnail>\n  <div class=\"thumbnail pdf-viewer-template\" page-number=\"PAGE_NUMBER\">\n    <div class=\"thumbnailImageContainer missingThumbnailImage\" role=\"button\" tabindex=\"-1\" page-number=\"PAGE_NUMBER\">\n      <img class=\"thumbnailImage\" />\n    </div>\n  </div>\n</ng-template>\n","import { Component, computed, 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    standalone: false\n})\nexport class PdfSidebarToolbarComponent {\n\n  public mobileFriendlyZoomScale = input<number>(1);\n\n  public height = computed(() => {\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\"\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 { Component, ElementRef, input, output, signal, 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    standalone: false\n})\nexport class PdfSidebarComponent {\n  public sidebarPositionTop = input<string | undefined>(undefined);\n\n  public sidebarVisible = input<boolean>(true);\n\n  public mobileFriendlyZoomScale = input<number>(1);\n\n  public showSidebarButton = input<ResponsiveVisibility>(true);\n\n  public customSidebar = input<TemplateRef<any> | undefined>(undefined);\n\n  public customThumbnail = input<TemplateRef<any> | undefined>(undefined);\n\n  public thumbnailDrawn = output<PdfThumbnailDrawnEvent>();\n\n  public hideSidebarToolbar = signal(true);\n\n  constructor(private readonly elementRef: ElementRef) {}\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.set(visible <= 1);\n    // Signals automatically trigger change detection, no need for markForCheck()\n  }\n}\n","<div>\n  <ng-content *ngTemplateOutlet=\"customSidebar() || defaultSidebar\"></ng-content>\n</div>\n\n<ng-template #defaultSidebar>\n  <div\n    id=\"viewsManager\"\n    class=\"menuContainer sidebar\"\n    role=\"dialog\"\n    data-l10n-id=\"pdfjs-views-manager-sidebar\"\n    [style.top]=\"sidebarPositionTop()\"\n  >\n    <div id=\"viewsManagerHeader\">\n      <div\n        id=\"additionalSidebarContainer\"\n        [class.hidden]=\"hideSidebarToolbar()\"\n      >\n        <pdf-sidebar-toolbar [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale()\"></pdf-sidebar-toolbar>\n      </div>\n      <!-- #3141 added by ngx-extended-pdf-viewer\n           pdf.js v6 sidebar title row: Add-file button (merge feature) +\n           jump-to-current-outline button. Both hidden until pdf.js unhides them\n           via enableMerge / outline-view activation. The collapse-when-empty rule\n           in views_manager.scss hides the whole row when nothing is visible.\n           Upstream's #viewsManagerHeaderLabel (a breadcrumb for the active view)\n           is intentionally omitted — ngx's pdf-sidebar-toolbar already shows\n           which view is active via the highlighted toolbar button. The dummy\n           component still provides an off-screen placeholder so pdf.js's\n           data-l10n-id setter doesn't error. -->\n      <div id=\"viewsManagerTitle\">\n        <button\n          id=\"viewsManagerAddFileButton\"\n          class=\"toolbarButton viewsManagerButton\"\n          type=\"button\"\n          tabindex=\"0\"\n          data-l10n-id=\"pdfjs-views-manager-add-file-button\"\n          hidden=\"true\"\n        >\n          <span data-l10n-id=\"pdfjs-views-manager-add-file-button-label\">Add file</span>\n          <input id=\"viewsManagerAddFilePicker\" type=\"file\" accept=\"application/pdf,image/*\" multiple />\n        </button>\n        <button\n          id=\"viewsManagerCurrentOutlineButton\"\n          class=\"toolbarButton viewsManagerButton\"\n          type=\"button\"\n          tabindex=\"0\"\n          data-l10n-id=\"pdfjs-current-outline-item-button\"\n          hidden=\"true\"\n        >\n          <span data-l10n-id=\"pdfjs-current-outline-item-button-label\">Current outline item</span>\n        </button>\n      </div>\n      <!-- #3141 end of addition by ngx-extended-pdf-viewer -->\n      <div id=\"viewsManagerStatus\">\n        <div id=\"viewsManagerStatusAction\">\n          <span id=\"viewsManagerStatusActionLabelContainer\" class=\"viewsManagerStatusLabel\">\n            <button\n              id=\"viewsManagerStatusActionDeselectButton\"\n              class=\"hidden\"\n              type=\"button\"\n              tabindex=\"0\"\n              role=\"checkbox\"\n              aria-checked=\"true\"\n              aria-labelledby=\"viewsManagerStatusActionLabel\"\n            ></button>\n            <span\n              id=\"viewsManagerStatusActionLabel\"\n              class=\"viewsManagerStatusLabel\"\n              data-l10n-id=\"pdfjs-views-manager-pages-status-none-action-label\"\n            ></span>\n          </span>\n          <div id=\"actionSelector\">\n            <button\n              id=\"viewsManagerStatusActionButton\"\n              class=\"viewsManagerButton hasPopupMenu\"\n              type=\"button\"\n              tabindex=\"0\"\n              aria-haspopup=\"menu\"\n              aria-controls=\"viewsManagerStatusActionOptions\"\n              aria-expanded=\"false\"\n            >\n              <span data-l10n-id=\"pdfjs-views-manager-pages-status-action-button-label\"></span>\n            </button>\n            <menu id=\"viewsManagerStatusActionOptions\" class=\"popupMenu\">\n              <button id=\"viewsManagerStatusActionCopy\" class=\"noIcon\" role=\"menuitem\" type=\"button\" tabindex=\"-1\" disabled>\n                <span data-l10n-id=\"pdfjs-views-manager-pages-status-copy-button-label\"></span>\n              </button>\n              <button id=\"viewsManagerStatusActionCut\" class=\"noIcon\" role=\"menuitem\" type=\"button\" tabindex=\"-1\" disabled>\n                <span data-l10n-id=\"pdfjs-views-manager-pages-status-cut-button-label\"></span>\n              </button>\n              <button id=\"viewsManagerStatusActionDelete\" class=\"noIcon\" role=\"menuitem\" type=\"button\" tabindex=\"-1\" disabled>\n                <span data-l10n-id=\"pdfjs-views-manager-pages-status-delete-button-label\"></span>\n              </button>\n              <button id=\"viewsManagerStatusActionExport\" class=\"noIcon\" role=\"menuitem\" type=\"button\" tabindex=\"-1\" disabled>\n                <span data-l10n-id=\"pdfjs-views-manager-pages-status-export-selected-button-label\"></span>\n              </button>\n            </menu>\n          </div>\n        </div>\n        <div id=\"viewsManagerStatusUndo\" class=\"hidden\">\n          <span id=\"viewsManagerStatusUndoLabel\" class=\"viewsManagerStatusLabel\"></span>\n          <div>\n            <button id=\"viewsManagerStatusUndoButton\" class=\"viewsManagerButton\" type=\"button\" tabindex=\"0\">\n              <span data-l10n-id=\"pdfjs-views-manager-status-undo-button-label\"></span>\n            </button>\n            <button\n              id=\"viewsManagerStatusUndoCloseButton\"\n              class=\"toolbarButton viewsManagerButton viewsCloseButton\"\n              type=\"button\"\n              tabindex=\"0\"\n              data-l10n-id=\"pdfjs-views-manager-status-close-button\"\n            >\n              <span data-l10n-id=\"pdfjs-views-manager-status-close-button-label\"></span>\n            </button>\n          </div>\n        </div>\n        <div id=\"viewsManagerStatusWarning\" class=\"hidden\">\n          <span id=\"viewsManagerStatusWarningLabel\" class=\"viewsManagerStatusLabel\"></span>\n          <button\n            id=\"viewsManagerStatusWarningCloseButton\"\n            class=\"toolbarButton viewsManagerButton viewsCloseButton\"\n            type=\"button\"\n            tabindex=\"0\"\n            data-l10n-id=\"pdfjs-views-manager-status-close-button\"\n          >\n            <span data-l10n-id=\"pdfjs-views-manager-status-close-button-label\"></span>\n          </button>\n        </div>\n        <div id=\"viewsManagerStatusWaiting\" class=\"hidden\">\n          <span id=\"viewsManagerStatusWaitingLabel\" class=\"viewsManagerStatusLabel\"></span>\n          <button\n            id=\"viewsManagerStatusWaitingCloseButton\"\n            class=\"toolbarButton viewsManagerButton viewsCloseButton\"\n            type=\"button\"\n            tabindex=\"0\"\n            data-l10n-id=\"pdfjs-views-manager-status-close-button\"\n          >\n            <span data-l10n-id=\"pdfjs-views-manager-status-close-button-label\"></span>\n          </button>\n        </div>\n      </div>\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=\"viewsManagerResizer\" class=\"sidebarResizer\" role=\"separator\" aria-controls=\"viewsManager\" tabindex=\"0\" data-l10n-id=\"pdfjs-views-manager-sidebar-resizer\"></div>\n  </div>\n</ng-template>\n","import { AfterContentInit, AfterViewInit, Component, computed, contentChild, effect, ElementRef, input, OnInit, Renderer2, viewChild } from '@angular/core';\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    standalone: false\n})\nexport class PdfShyButtonComponent implements OnInit, AfterViewInit, AfterContentInit {\n  public primaryToolbarId = input.required<string>();\n\n  public secondaryMenuId = input<string>('');\n\n  public cssClass = input<ResponsiveCSSClass>('invisible');\n\n  public eventBusName = input<string | undefined>(undefined);\n\n  public l10nId = input<string>('');\n\n  public l10nLabel = input<string>('');\n\n  public title = input<string>('');\n\n  public toggled = input<boolean>(false);\n\n  public disabled = input<boolean>(false);\n\n  public order = input<number>(99999);\n\n  public action = input<((htmlEvent?: Event, isSecondaryMenue?: boolean) => void) | undefined>(undefined);\n\n  public closeOnClick = input<boolean>(true);\n\n  public onlySecondaryMenu = input<boolean>(false);\n\n  public ariaHasPopup = input<boolean | 'true' | 'menu' | 'dialog'>(false);\n\n  public ariaControls = input<string | undefined>(undefined);\n\n  public role = input<string | undefined>(undefined);\n\n  public image = input<string>('');\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public renderContent = false;\n\n  public buttonRef = viewChild<ElementRef>('buttonRef');\n\n  public nestedContent = contentChild<ElementRef>('nestedContent');\n\n  // Computed signal that validates and sanitizes the SVG string\n  // Returns sanitized HTML for use in both primary toolbar and secondary toolbar\n  public imageHtml = computed(() => {\n    const value = this.image();\n    if (!value) return undefined;\n\n    const svgTags = new Set([\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    // Validation: 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.has(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\n    // Return validated raw SVG - sanitization happens in updateButtonImage and pipe\n    return value;\n  });\n\n  constructor(\n    private readonly pdfShyButtonServiceService: PdfShyButtonService,\n    private readonly renderer: Renderer2,\n    notificationService: PDFNotificationService,\n    private readonly pdfCspPolicyService: PdfCspPolicyService,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n\n    // Replace ngOnChanges: update service when any input changes\n    effect(() => {\n      // Track all inputs to trigger effect on any change\n      this.primaryToolbarId();\n      this.secondaryMenuId();\n      this.cssClass();\n      this.eventBusName();\n      this.l10nId();\n      this.l10nLabel();\n      this.title();\n      this.toggled();\n      this.disabled();\n      this.order();\n      this.action();\n      this.closeOnClick();\n      this.onlySecondaryMenu();\n      this.ariaHasPopup();\n      this.ariaControls();\n      this.role();\n      this.image();\n\n      // Service update runs whenever any input changes\n      this.pdfShyButtonServiceService.update(this);\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 onClick(htmlEvent: Event): void {\n    if (htmlEvent instanceof KeyboardEvent && htmlEvent.key !== 'Enter' && htmlEvent.key !== ' ') {\n      return;\n    }\n\n    const actionFn = this.action();\n    const eventName = this.eventBusName();\n\n    if (actionFn) {\n      actionFn(htmlEvent, false);\n      htmlEvent.preventDefault();\n    } else if (eventName) {\n      this.PDFViewerApplication?.eventBus.dispatch(eventName);\n      htmlEvent.preventDefault();\n    }\n  }\n\n  public updateButtonImage() {\n    const btnRef = this.buttonRef();\n    if (btnRef) {\n      const el = btnRef.nativeElement;\n      const imageHtmlValue = this.imageHtml();\n\n      if (imageHtmlValue && typeof imageHtmlValue === 'string') {\n        const temp = this.renderer.createElement('div');\n        // imageHtmlValue is already sanitized by pdfCspPolicyService.sanitizeHTML in imageHtml computed\n        // Use addTrustedHTML to properly handle Trusted Types\n        this.pdfCspPolicyService.addTrustedHTML(temp, imageHtmlValue);\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        // Only clear the SVG image previously injected by this method;\n        // leave the Angular-managed label span (rendered in the template\n        // for Fluent's screen-reader translation) alone. Snapshot first —\n        // iterating a live NodeList while removing skips every other child.\n        const children: ChildNode[] = Array.from(el.childNodes);\n        for (const child of children) {\n          if (\n            child.nodeType === Node.ELEMENT_NODE &&\n            (child as Element).tagName.toLowerCase() === 'svg'\n          ) {\n            this.renderer.removeChild(el, child);\n          }\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)\" (keydown)=\"onClick($event)\" [class]=\"cssClass()\">\n  <ng-content></ng-content>\n</span>\n}\n@else {\n<button type=\"button\" [id]=\"primaryToolbarId()\" [class]=\"'toolbarButton ' + cssClass()\" [title]=\"title()\"\n  [attr.data-l10n-id]=\"l10nId() || null\" [class.toggled]=\"toggled()\" [disabled]=\"disabled()\" (click)=\"onClick($event)\"\n  [attr.aria-label]=\"title()\" [attr.role]=\"role()\" [attr.aria-expanded]=\"toggled() ? 'true' : (ariaHasPopup() ? 'false' : null)\"\n  [attr.aria-haspopup]=\"ariaHasPopup()\" [attr.aria-controls]=\"ariaControls()\" #buttonRef>\n  <span [attr.data-l10n-id]=\"l10nLabel() || null\"></span>\n</button>\n}\n}","import { ChangeDetectorRef, Component, input, model, OnDestroy } 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    standalone: false\n})\nexport class PdfBookModeComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public onClick?: (() => void) | undefined;\n\n  constructor(private readonly cdr: ChangeDetectorRef) {\n    this.onClick = () => {\n      setTimeout(this.asyncWithCD(() => {\n        this.pageViewMode.set('book');\n      }));\n    };\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\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  [disabled]=\"disable()\"\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    standalone: false\n})\nexport class PdfDocumentPropertiesComponent {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='-1 0 17 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    standalone: false\n})\nexport class PdfDownloadComponent {\n  public showDownloadButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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\" [disabled]=\"disable()\">\n</pdf-shy-button>","import { ChangeDetectorRef, Component, effect, input, OnDestroy } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n    selector: 'pdf-comment-editor',\n    templateUrl: './pdf-comment-editor.component.html',\n    styleUrls: ['./pdf-comment-editor.component.css'],\n    standalone: false\n})\nexport class PdfCommentEditorComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = false;\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly focusManagement: FocusManagementService,\n    private readonly cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(this.asyncWithCD(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === AnnotationEditorType.POPUP;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorCommentParamsToolbar', 'Comment editor toolbar opened', 'editorCommentButton');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Comment editor toolbar closed');\n        }\n\n        // No manual change detection needed - signals handle this automatically\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public onClick = (event?: Event): void => {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.POPUP ? AnnotationEditorType.NONE : AnnotationEditorType.POPUP,\n      isFromKeyboard: (event as PointerEvent)?.detail === 0,\n    });\n\n    // Position the comment sidebar\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('editorCommentButton', 'editorCommentParamsToolbar');\n  };\n}\n","<pdf-shy-button\n  title=\"Comment\"\n  primaryToolbarId=\"editorCommentButton\"\n  [cssClass]=\"show() | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-comment-button\"\n  l10nLabel=\"pdfjs-editor-comment-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorCommentParamsToolbar\"\n  [order]=\"3900\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='0 0 24 24'> <path fill='currentColor' d='M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M10,16V19.08L13.08,16H20V4H4V16H10Z' /> </svg>\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, input, OnDestroy } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n    selector: 'pdf-draw-editor',\n    templateUrl: './pdf-draw-editor.component.html',\n    styleUrls: ['./pdf-draw-editor.component.css'],\n    standalone: false\n})\nexport class PdfDrawEditorComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly focusManagement: FocusManagementService,\n    private readonly cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(this.asyncWithCD(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 15;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorInkParamsToolbar', 'Draw editor toolbar opened', 'primaryEditorInk');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Draw editor toolbar closed');\n        }\n\n        // No manual change detection needed - signals handle this automatically\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public onClick = (event?: Event): void => {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.INK ? AnnotationEditorType.NONE : AnnotationEditorType.INK,\n      isFromKeyboard: (event as PointerEvent)?.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorInk', 'editorInkParamsToolbar');\n  };\n}\n","<pdf-shy-button\n  title=\"Draw\"\n  primaryToolbarId=\"primaryEditorInk\"\n  [cssClass]=\"show() | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-ink-button\"\n  l10nLabel=\"pdfjs-editor-ink-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorInkParamsToolbar\"\n  [order]=\"4050\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='-1 0 16 16' xmlns:xlink='http://www.w3.org/1999/xlink' enable-background='new 0 0 16 16' fill='currentColor'> <g> <g transform='scale(0.03125)'>  <path  d='m455.1,137.9l-32.4,32.4-81-81.1 32.4-32.4c6.6-6.6 18.1-6.6 24.7,0l56.3,56.4c6.8,6.8 6.8,17.9 0,24.7zm-270.7,271l-81-81.1 209.4-209.7 81,81.1-209.4,209.7zm-99.7-42l60.6,60.7-84.4,23.8 23.8-84.5zm399.3-282.6l-56.3-56.4c-11-11-50.7-31.8-82.4,0l-285.3,285.5c-2.5,2.5-4.3,5.5-5.2,8.9l-43,153.1c-2,7.1 0.1,14.7 5.2,20 5.2,5.3 15.6,6.2 20,5.2l153-43.1c3.4-0.9 6.4-2.7 8.9-5.2l285.1-285.5c22.7-22.7 22.7-59.7 0-82.5z'  /> </g> </g> </svg>\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, input, OnDestroy } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n    selector: 'pdf-editor-signature',\n    templateUrl: './pdf-editor-signature.component.html',\n    styleUrl: './pdf-editor-signature.component.css',\n    standalone: false\n})\nexport class PdfEditorSignatureComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly focusManagement: FocusManagementService,\n    private readonly cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(this.asyncWithCD(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === AnnotationEditorType.SIGNATURE;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorSignatureParamsToolbar', 'Signature editor toolbar opened', 'primaryEditorSignatureButton');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Signature editor toolbar closed');\n        }\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public onClick = (event?: Event): void => {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.SIGNATURE ? AnnotationEditorType.NONE : AnnotationEditorType.SIGNATURE,\n      isFromKeyboard: (event as PointerEvent)?.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorSignatureButton', 'editorSignatureParamsToolbar');\n  };\n}\n","<pdf-shy-button\n  title=\"Signature\"\n  primaryToolbarId=\"primaryEditorSignatureButton\"\n  [cssClass]=\"show() | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-signature-button\"\n  l10nLabel=\"pdfjs-editor-signature-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorSignatureParamsToolbar\"\n  [order]=\"4000\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg width='20' height='20' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M11.618 12.868L11.254 13.25H10.423C10.335 13.396 10.182 13.5 10 13.5H2C1.725 13.5 1.5 13.275 1.5 13V2C1.5 1.725 1.725 1.5 2 1.5H6.939L7 1.561V4.5C7 4.776 7.224 5 7.5 5H10.439L10.5 5.061V6.515L12 5.015V4.75C12 4.551 11.921 4.36 11.78 4.22L7.78 0.22C7.64 0.079 7.449 0 7.25 0H2C0.895 0 0 0.895 0 2V13C0 14.105 0.895 15 2 15H10C11.105 15 12 14.105 12 13V12.486L11.618 12.868Z' fill='currentColor'/><path d='M13.836 4.946C13.962 4.819 14.13 4.75 14.309 4.75C14.487 4.75 14.655 4.819 14.782 4.945L15.805 5.969C15.931 6.094 16 6.262 16 6.441C16 6.621 15.931 6.789 15.805 6.915L14.9397 7.78033L12.9707 5.81134L13.836 4.946Z' fill='currentColor'/><path d='M12.4403 6.34167L8.84 9.942C8.793 9.989 8.767 10.052 8.767 10.119V11.75C8.767 11.888 8.879 12 9.017 12H10.616L10.793 11.927L14.4093 8.31067L12.4403 6.34167Z' fill='currentColor'/><path d='M7.517 9.84799V10.016H7.516V11.517C7.49168 11.4944 7.46584 11.4738 7.44007 11.4532C7.39062 11.4138 7.34148 11.3746 7.304 11.322L7.081 11.009C7.071 10.992 7.037 10.946 6.966 10.957C6.93 10.962 6.882 10.982 6.859 11.046C6.705 11.486 6.492 12.087 5.938 12.087H5.921C5.317 12.07 5.009 11.557 4.745 9.98599L4.382 10.954C4.146 11.585 3.535 12.009 2.861 12.009H2.5V10.759H2.861C3.017 10.759 3.158 10.661 3.213 10.515L3.883 8.72799C4.05 8.28199 4.494 8.01899 4.955 8.07299C5.434 8.12799 5.796 8.48599 5.858 8.96399C5.921 9.43699 5.98 9.80399 6.035 10.085C6.24 9.89099 6.504 9.76099 6.795 9.71999C7.048 9.68399 7.291 9.74599 7.517 9.84799Z' fill='currentColor'/></svg>\">\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, input, OnDestroy } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n    selector: 'pdf-highlight-editor',\n    templateUrl: './pdf-highlight-editor.component.html',\n    styleUrls: ['./pdf-highlight-editor.component.css'],\n    standalone: false\n})\nexport class PdfHighlightEditorComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly focusManagement: FocusManagementService,\n    private readonly cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(this.asyncWithCD(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 9;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorHighlightParamsToolbar', 'Highlight editor toolbar opened', 'primaryEditorHighlight');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Highlight editor toolbar closed');\n        }\n\n        // No manual change detection needed - signals handle this automatically\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public onClick = (event?: Event): void => {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.HIGHLIGHT ? AnnotationEditorType.NONE : AnnotationEditorType.HIGHLIGHT,\n      isFromKeyboard: (event as PointerEvent)?.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorHighlight', 'editorHighlightParamsToolbar');\n  };\n}\n","<pdf-shy-button\n  title=\"Highlight\"\n  primaryToolbarId=\"primaryEditorHighlight\"\n  [cssClass]=\"show() | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-highlight-button\"\n  l10nLabel=\"pdfjs-editor-highlight-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorHighlightParamsToolbar\"\n  [order]=\"4050\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='20px' height='20px' viewBox='-1 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, OnDestroy } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { getVersionSuffix, pdfDefaultOptions } from '../../options/pdf-default-options';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n    selector: 'pdf-stamp-editor',\n    templateUrl: './pdf-stamp-editor.component.html',\n    styleUrls: ['./pdf-stamp-editor.component.css'],\n    standalone: false\n})\nexport class PdfStampEditorComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = false;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public get pdfJsVersion(): string {\n    return getVersionSuffix(pdfDefaultOptions.assetsFolder);\n  }\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly focusManagement: FocusManagementService,\n    private readonly cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(this.asyncWithCD(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 13;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorStampParamsToolbar', 'Stamp editor toolbar opened', 'primaryEditorStamp');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Stamp editor toolbar closed');\n        }\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public onClick = (event?: Event): void => {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.STAMP ? AnnotationEditorType.NONE : AnnotationEditorType.STAMP,\n      isFromKeyboard: (event as PointerEvent)?.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorStamp', 'editorStampParamsToolbar');\n  };\n}\n","<pdf-shy-button title=\"Text\" primaryToolbarId=\"primaryEditorStamp\"\n  [cssClass]=\"show() | responsiveCSSClass : 'hiddenTinyView'\" l10nId=\"pdfjs-editor-stamp-button\"\n  l10nLabel=\"pdfjs-editor-stamp-button-label\" role=\"radio\" ariaHasPopup=\"true\"\n  ariaControls=\"editorStampParamsToolbar\" [order]=\"4200\" [action]=\"onClick\" [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\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, OnDestroy } from '@angular/core';\nimport { PositioningService } from '../../dynamic-css/positioning.service';\nimport { AnnotationEditorEditorModeChangedEvent } from '../../events/annotation-editor-mode-changed-event';\nimport { FocusManagementService } from '../../focus-management.service';\nimport { AnnotationEditorType } from '../../options/editor-annotations';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\n\n@Component({\n    selector: 'pdf-text-editor',\n    templateUrl: './pdf-text-editor.component.html',\n    styleUrls: ['./pdf-text-editor.component.css'],\n    standalone: false\n})\nexport class PdfTextEditorComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = false;\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(\n    notificationService: PDFNotificationService,\n    private readonly focusManagement: FocusManagementService,\n    private readonly cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('annotationeditormodechanged', ({ mode }: AnnotationEditorEditorModeChangedEvent) => {\n      setTimeout(this.asyncWithCD(() => {\n        const wasSelected = this.isSelected;\n        this.isSelected = mode === 3;\n\n        // Focus management\n        if (!wasSelected && this.isSelected) {\n          // Dialog just opened\n          this.focusManagement.moveFocusToDialog('editorFreeTextParamsToolbar', 'Text editor toolbar opened', 'primaryEditorFreeText');\n        } else if (wasSelected && !this.isSelected) {\n          // Dialog just closed\n          this.focusManagement.returnFocusToPrevious('Text editor toolbar closed');\n        }\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public onClick = (event?: Event): void => {\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', {\n      source: this,\n      mode: currentMode === AnnotationEditorType.FREETEXT ? AnnotationEditorType.NONE : AnnotationEditorType.FREETEXT,\n      isFromKeyboard: (event as PointerEvent)?.detail === 0,\n    });\n    const positioningService = new PositioningService();\n    positioningService.positionPopupBelowItsButton('primaryEditorFreeText', 'editorFreeTextParamsToolbar');\n  }\n}\n","<pdf-shy-button\n  title=\"Draw\"\n  primaryToolbarId=\"primaryEditorFreeText\"\n  [cssClass]=\"show() | responsiveCSSClass : 'hiddenTinyView'\"\n  l10nId=\"pdfjs-editor-free-text-button\"\n  l10nLabel=\"pdfjs-editor-free-text-button-label\"\n  role=\"radio\"\n  ariaHasPopup=\"true\"\n  ariaControls=\"editorFreeTextParamsToolbar\"\n  [order]=\"4100\"\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\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    standalone: false\n})\nexport class PdfEditorComponent {\n  public showCommentEditor = input<ResponsiveVisibility>(true);\n\n  public showDrawEditor = input<ResponsiveVisibility>(true);\n\n  public showHighlightEditor = input<ResponsiveVisibility>(true);\n\n  public showTextEditor = input<ResponsiveVisibility>(true);\n\n  public showSignatureEditor = input<ResponsiveVisibility>(true);\n\n  public showStampEditor = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableCommentEditor = input<boolean>(false);\n  public disableDrawEditor = input<boolean>(false);\n  public disableHighlightEditor = input<boolean>(false);\n  public disableTextEditor = input<boolean>(false);\n  public disableSignatureEditor = input<boolean>(false);\n  public disableStampEditor = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n}\n","<!-- #2818 modified by ngx-extended-pdf-viewer -->\n<div id=\"editorModeButtons\" class=\"splitToolbarButton toggled\" role=\"radiogroup\">\n  <pdf-comment-editor [show]=\"showCommentEditor()\" [disable]=\"disableCommentEditor()\"></pdf-comment-editor>\n  <pdf-editor-signature [show]=\"showSignatureEditor()\" [disable]=\"disableSignatureEditor()\"></pdf-editor-signature>\n  <pdf-highlight-editor [show]=\"showHighlightEditor()\" [disable]=\"disableHighlightEditor()\"></pdf-highlight-editor>\n  <pdf-text-editor [show]=\"showTextEditor()\" [disable]=\"disableTextEditor()\"></pdf-text-editor>\n  <pdf-stamp-editor [show]=\"showStampEditor()\" [disable]=\"disableStampEditor()\"></pdf-stamp-editor>\n  <pdf-draw-editor [show]=\"showDrawEditor()\" [disable]=\"disableDrawEditor()\"></pdf-draw-editor>\n</div>\n<!-- #2818 end of modification by ngx-extended-pdf-viewer -->","import { ChangeDetectorRef, Component, input, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfEvenSpreadComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public spread: SpreadType = 'off';\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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 || disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='-4 -4 24 24'><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    standalone: false\n})\nexport class PdfFindButtonComponent {\n  public showFindButton = input<ResponsiveVisibility | undefined>(undefined);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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  public hasTextLayer = input<boolean>(false);\n\n  public textLayer = input<boolean | undefined>(undefined);\n\n  public findbarVisible = input<boolean>(false);\n\n  private PDFViewerApplication!: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public onClick = (): void => {\n    const PDFViewerApplication: any = this.PDFViewerApplication;\n    if (PDFViewerApplication?.findBar.opened) {\n      PDFViewerApplication.findBar.close();\n    } else if (PDFViewerApplication) {\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()\" [disabled]=\"disable()\"\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, effect, input, OnDestroy } 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    standalone: false\n})\nexport class PdfHandToolComponent implements OnDestroy {\n  public showHandToolButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public handTool = input<boolean>(false);\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public isSelected = false;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n\n    // #3140 modified by ngx-extended-pdf-viewer\n    // Only use handTool input for initial state before pdf.js fires cursortoolchanged.\n    // After init, cursortoolchanged is the sole source of truth (supports 3+ modes).\n    effect(() => {\n      const isHand = this.handTool();\n      if (!this.PDFViewerApplication) {\n        this.isSelected = isHand;\n      }\n    });\n    // #3140 end of modification by ngx-extended-pdf-viewer\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.HAND), opts);\n    // #3140: Read current tool state — may have missed the initial cursortoolchanged event\n    const activeTool = (this.PDFViewerApplication as any)?.pdfCursorTools?.activeTool;\n    if (activeTool !== undefined) {\n      this.isSelected = activeTool === PdfCursorTools.HAND;\n    }\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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  [disabled]=\"disable()\"\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","import { Component, effect, input, OnDestroy } 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// #3140 added by ngx-extended-pdf-viewer\n@Component({\n    selector: 'pdf-page-flip-tool',\n    templateUrl: './pdf-page-flip-tool.component.html',\n    styleUrls: ['./pdf-page-flip-tool.component.css'],\n    standalone: false\n})\nexport class PdfPageFlipToolComponent implements OnDestroy {\n  public showPageFlipButton = input<ResponsiveVisibility>(false);\n\n  public disable = input<boolean>(false);\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public isSelected = false;\n\n  private eventBusAbortController: AbortController | null = null;\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.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    this.PDFViewerApplication?.eventBus.on('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.PAGE_FLIP), opts);\n    // #3140: Read current tool state — may have missed the initial cursortoolchanged event\n    const activeTool = (this.PDFViewerApplication as any)?.pdfCursorTools?.activeTool;\n    if (activeTool !== undefined) {\n      this.isSelected = activeTool === PdfCursorTools.PAGE_FLIP;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n\n  public onClick = (): void => {\n    this.PDFViewerApplication?.eventBus.dispatch('switchcursortool', { tool: PdfCursorTools.PAGE_FLIP });\n  };\n}\n// #3140 end of addition by ngx-extended-pdf-viewer\n","<pdf-shy-button\n  [action]=\"onClick\"\n  [toggled]=\"isSelected\"\n  primaryToolbarId=\"primaryCursorPageFlipTool\"\n  [cssClass]=\"showPageFlipButton() | responsiveCSSClass : 'hiddenXLView'\"\n  title=\"Enable page flip tool\"\n  l10nId=\"pdfjs-cursor-page-flip-tool-button\"\n  l10nLabel=\"pdfjs-cursor-page-flip-tool-button-label\"\n  [order]=\"1300\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='22px' height='22px' viewBox='0 0 24 24'><path fill='currentColor' d='M19 2L14 6.5V17.5L19 13V2M6.5 5C4.55 5 2.45 5.4 1 6.5V21.16C1 21.41 1.25 21.66 1.5 21.66C1.6 21.66 1.65 21.59 1.75 21.59C3.1 20.94 5.05 20.5 6.5 20.5C8.45 20.5 10.55 20.9 12 22C13.35 21.15 15.8 20.5 17.5 20.5C19.15 20.5 20.85 20.81 22.25 21.56C22.35 21.61 22.4 21.59 22.5 21.59C22.75 21.59 23 21.34 23 21.09V6.5C22.4 6.05 21.75 5.75 21 5.5V19C19.9 18.65 18.7 18.5 17.5 18.5C15.8 18.5 13.35 19.15 12 20V6.5C10.55 5.4 8.45 5 6.5 5Z'/></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 { ChangeDetectorRef, Component, effect, input, model, OnDestroy } 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    standalone: false\n})\nexport class PdfHorizontalScrollComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public onClick?: (() => void) | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n    this.onClick = () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const currentViewMode = this.pageViewMode();\n        if (currentViewMode !== 'multiple' && currentViewMode !== 'infinite-scroll') {\n          this.pageViewMode.set('multiple');\n        }\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.HORIZONTAL });\n      }));\n    };\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        // scrollMode is read-only input, so we don't update it\n        // The parent component will update it via binding\n      }));\n    }, opts);\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show() | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Use Horizontal Scrolling\"\n  primaryToolbarId=\"scrollHorizontal\"\n  l10nId=\"pdfjs-scroll-horizontal-button\"\n  [toggled]=\"scrollMode() == 1\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-horizontal-button-label\"\n  [order]=\"3200\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='-4 -4 24 24'> <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 { ChangeDetectorRef, Component, effect, input, model, OnDestroy } 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    standalone: false\n})\nexport class PdfInfiniteScrollComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public onClick?: (() => void) | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n    this.onClick = () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const currentViewMode = this.pageViewMode();\n        const currentScrollMode = this.scrollMode();\n        if (currentViewMode === 'infinite-scroll') {\n          this.pageViewMode.set('multiple');\n        } else {\n          if (currentScrollMode !== ScrollModeType.wrapped && currentScrollMode !== ScrollModeType.vertical) {\n            this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.VERTICAL });\n          }\n          this.pageViewMode.set('infinite-scroll');\n        }\n      }));\n    };\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show() | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Infinite scroll\"\n  primaryToolbarId=\"infiniteScroll\"\n  [toggled]=\"pageViewMode() == 'infinite-scroll'\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-infinite-scroll-button-label\"\n  [order]=\"3400\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' xmlns='http://www.w3.org/2000/svg' height= '24' viewBox= '0 -960 960 960' width='24' fill='currentColor'><path d= 'M212-260q-90 0-151-65.5T0-482q0-90 61.5-154T212-700q36 0 69.5 12t59.5 37l93 90-42 42-89-87q-18-18-41.5-26t-49.5-8q-64 0-108 46.5T60-482q0 66 43.5 114T212-320q25 0 48.5-8t42.5-25l316-298q26-25 59.5-37t68.5-12q90 0 151.5 64T960-482q0 91-61.5 156.5T747-260q-35 0-69-11.5T619-308l-91-90 42-42 87 87q17 17 41 25t49 8q65 0 109-48t44-114q0-65-44.5-111.5T747-640q-25 0-48.5 9T657-605L341-307q-26 24-60 35.5T212-260Z '/></svg>\"\n>\n</pdf-shy-button>\n","import { Component, input, effect } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\n\n@Component({\n    selector: 'pdf-move-down',\n    templateUrl: './pdf-move-down.component.html',\n    styleUrls: ['./pdf-move-down.component.css'],\n    standalone: false\n})\nexport class PdfMoveDownComponent {\n  public showMoveDownButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public movePageDown = () => {\n    if (this.PDFViewerApplication) {\n      const currentPage = this.PDFViewerApplication.page;\n      // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n      this.PDFViewerApplication.eventBus?.dispatch('movePageDown', {\n        source: { pageNumber: currentPage }\n      });\n    }\n  };\n}\n","<pdf-shy-button\n  primaryToolbarId=\"primaryMoveDownButton\"\n  secondaryMenuId=\"secondaryMoveDownButton\"\n  [cssClass]=\"showMoveDownButton() | responsiveCSSClass: 'hiddenSmallView'\"\n  title=\"Move Page Down\"\n  l10nLabel=\"pdfjs-editor-movePageDown-button-label\"\n  [action]=\"movePageDown\"\n  [disabled]=\"disable()\"\n  image=\"<svg viewBox='0 0 24 24' height='20px' width='24px' aria-hidden='true'><path d='M14 2l6 6v7a2 2 0 0 1-2 2v-3H6v3a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8m4 12v-5h-5v-5H6v10h12z' fill='currentColor'></path><path d='M6 16h12' stroke-dasharray='3,2' stroke-width='2' stroke='currentColor' fill='none'></path><path d='M12 23l-4-4h8l-4 4z' fill='currentColor'></path></svg>\"\n  [order]=\"450\"\n>\n</pdf-shy-button>\n","import { Component, input, effect } from '@angular/core';\nimport { ResponsiveVisibility } from '../../responsive-visibility';\nimport { IPDFViewerApplication } from '../../options/pdf-viewer-application';\nimport { PDFNotificationService } from '../../pdf-notification-service';\n\n@Component({\n    selector: 'pdf-move-up',\n    templateUrl: './pdf-move-up.component.html',\n    styleUrls: ['./pdf-move-up.component.css'],\n    standalone: false\n})\nexport class PdfMoveUpComponent {\n  public showMoveUpButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public movePageUp = () => {\n    if (this.PDFViewerApplication) {\n      const currentPage = this.PDFViewerApplication.page;\n      // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n      this.PDFViewerApplication.eventBus?.dispatch('movePageUp', {\n        source: { pageNumber: currentPage }\n      });\n    }\n  };\n}\n","<pdf-shy-button\n  primaryToolbarId=\"primaryMoveUpButton\"\n  secondaryMenuId=\"secondaryMoveUpButton\"\n  [cssClass]=\"showMoveUpButton() | responsiveCSSClass: 'hiddenSmallView'\"\n  title=\"Move Page Up\"\n  l10nLabel=\"pdfjs-editor-movePageUp-button-label\"\n  [action]=\"movePageUp\"\n  [disabled]=\"disable()\"\n  image=\"<svg viewBox='0 0 24 24' height='20px' width='24px' aria-hidden='true'><path d='M12 1L8 5h8l-4-4z' fill='currentColor'></path><path d='M14 7l6 6v7a2 2 0 0 1-2 2v-3H6v3a2 2 0 0 1-2-2v-11a2 2 0 0 1 2-2h8m4 12v-5h-5v-5H6v10h12z' fill='currentColor'></path><path d='M6 21h12' stroke-dasharray='3,2' stroke-width='2' stroke='currentColor' fill='none'></path></svg>\"\n  [order]=\"460\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, input, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfNoSpreadComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public spread: SpreadType = 'off';\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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 || disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='-4 -4 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 { ChangeDetectorRef, Component, input, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfOddSpreadComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public spread: SpreadType = 'off';\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('spreadmodechanged', (event) => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n        this.spread = modes[event.mode];\n      }));\n    }, opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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 || disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='-4 -4 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    standalone: false\n})\nexport class PdfOpenFileComponent {\n  public showOpenFileButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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  [disabled]=\"disable()\"\n>\n</pdf-shy-button>\n","import { Component, input, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfFirstPageComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disableFirstPage = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableFirstPage = event.pageNumber <= 1;\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 || disable()\"\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 { Component, effect, input, OnDestroy } 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    standalone: false\n})\nexport class PdfLastPageComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disableLastPage = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableLastPage = event.pageNumber === event.pagesCount;\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 || disable()\"\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 { Component, effect, input, OnDestroy } 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    standalone: false\n})\nexport class PdfNextPageComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disableNextPage = true;\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableNextPage = event.pageNumber === event.pagesCount;\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 || disable()\"\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    standalone: false\n})\nexport class PdfPageNumberComponent {\n  public showPageNumber = input<ResponsiveVisibility>(true);\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePageNumber = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n  public showPageLabel = input<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    [disabled]=\"disablePageNumber()\"\n  />\n</span>\n<span [class]=\"showPageLabel() | responsiveCSSClass : 'hiddenLargeView'\" id=\"numPages\" class=\"toolbarLabel\"></span>\n","import { Component, input, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfPreviousPageComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disablePreviousPage = true;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disablePreviousPage = event.pageNumber <= 1;\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 || disable()\"\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    standalone: false\n})\nexport class PdfPagingAreaComponent {\n  public showPagingButtons = input<ResponsiveVisibility>(true);\n\n  public showFirstAndLastPageButtons = input<ResponsiveVisibility>(true);\n\n  public showPreviousAndNextPageButtons = input<ResponsiveVisibility>(true);\n\n  public showPageNumber = input<ResponsiveVisibility>(true);\n\n  public showPageLabel = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePagingButtons = input<boolean>(false);\n  public disableFirstAndLastPageButtons = input<boolean>(false);\n  public disablePreviousAndNextPageButtons = input<boolean>(false);\n  public disablePageNumber = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n}\n","<!-- #2818 modified by ngx-extended-pdf-viewer -->\n<div [class]=\"showPagingButtons() | responsiveCSSClass : 'hiddenXXSView'\" class=\"paging-left\">\n  <pdf-first-page class=\"margin-right-correct\" [show]=\"showFirstAndLastPageButtons()\" [disable]=\"disablePagingButtons() || disableFirstAndLastPageButtons()\"></pdf-first-page>\n  <pdf-previous-page class=\"margin-left-correct\" [show]=\"showPreviousAndNextPageButtons()\" [disable]=\"disablePagingButtons() || disablePreviousAndNextPageButtons()\"></pdf-previous-page>\n</div>\n<pdf-page-number\n  [class]=\"showPagingButtons() | responsiveCSSClass : 'hiddenXXSView'\"\n  [showPageNumber]=\"showPageNumber()\"\n  [disablePageNumber]=\"disablePageNumber()\"\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()\" [disable]=\"disablePagingButtons() || disablePreviousAndNextPageButtons()\"></pdf-next-page>\n  <pdf-last-page class=\"margin-left-correct\" [show]=\"showFirstAndLastPageButtons()\" [disable]=\"disablePagingButtons() || disableFirstAndLastPageButtons()\"></pdf-last-page>\n</div>\n<!-- #2818 end of modification by ngx-extended-pdf-viewer -->\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    standalone: false\n})\nexport class PdfPresentationModeComponent {\n  public showPresentationModeButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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  [disabled]=\"disable()\"\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    standalone: false\n})\nexport class PdfPrintComponent {\n  public showPrintButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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\" [disabled]=\"disable()\"\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 { Component, input, ViewEncapsulation, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfRotatePageCwComponent implements OnDestroy {\n  public showRotateCwButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disableRotate = true;\n\n  public clockwise = input(true);\n\n  public counterClockwise = input(true);\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\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 || disable()\"\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 { Component, input, ViewEncapsulation, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfRotatePageCcwComponent implements OnDestroy {\n  public showRotateCcwButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disableRotate = true;\n\n  public counterClockwise = input(true);\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\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 || disable()\"\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, OnDestroy } 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    standalone: false\n})\nexport class PdfSelectToolComponent implements OnDestroy {\n  public showSelectToolButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public isSelected = true;\n\n  public handTool = input(false);\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n\n    // #3140 modified by ngx-extended-pdf-viewer\n    // Only use handTool input for initial state before pdf.js fires cursortoolchanged.\n    // After init, cursortoolchanged is the sole source of truth (supports 3+ modes).\n    effect(() => {\n      const isHand = this.handTool();\n      if (!this.PDFViewerApplication) {\n        this.isSelected = !isHand;\n      }\n    });\n    // #3140 end of modification by ngx-extended-pdf-viewer\n  }\n\n  private onPdfJsInit() {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.SELECT), opts);\n    // #3140: Read current tool state — may have missed the initial cursortoolchanged event\n    const activeTool = (this.PDFViewerApplication as any)?.pdfCursorTools?.activeTool;\n    if (activeTool !== undefined) {\n      this.isSelected = activeTool === PdfCursorTools.SELECT;\n    }\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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  [disabled]=\"disable()\"\n>\n</pdf-shy-button>\n","import { ChangeDetectorRef, Component, effect, input, model, OnDestroy } 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    standalone: false\n})\nexport class PdfSinglePageModeComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public onClick?: (() => void) | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n\n    this.onClick = () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.PAGE });\n      }));\n    };\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        // scrollMode is read-only input, parent component updates it via binding\n      }));\n    }, opts);\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show() | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Use Page Scrolling\"\n  primaryToolbarId=\"scrollPage\"\n  [toggled]=\"scrollMode() == 3\"\n  l10nId=\"pdfjs-scroll-page-button\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-page-button-label\"\n  [order]=\"3000\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\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    standalone: false\n})\nexport class PdfToggleSecondaryToolbarComponent {\n  public showSecondaryToolbarButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\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","<!-- #2818 modified by ngx-extended-pdf-viewer -->\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  [disabled]=\"disable()\"\n>\n<!-- #2818 end of modification by ngx-extended-pdf-viewer -->\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, output, input, OnDestroy } 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    standalone: false\n})\nexport class PdfToggleSidebarComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public sidebarVisible = input<boolean | undefined>(false);\n\n  public showChange = output<boolean>();\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public onClick = (event?: Event): void => {\n    // PDF.js v5.4.530 renamed pdfSidebar to viewsManager\n    console.log('PdfToggleSidebarComponent.onClick called', {\n      PDFViewerApplication: !!this.PDFViewerApplication,\n      viewsManager: !!this.PDFViewerApplication?.viewsManager,\n      isOpen: this.PDFViewerApplication?.viewsManager?.isOpen\n    });\n    const newVisibility = !this.PDFViewerApplication?.viewsManager?.isOpen;\n    this.showChange.emit(newVisibility);\n    if (this.PDFViewerApplication?.viewsManager) {\n      console.log('Calling viewsManager.toggle()');\n      this.PDFViewerApplication.viewsManager.toggle(event);\n    } else {\n      console.warn('viewsManager not available!');\n    }\n  };\n\n  public ngOnDestroy(): void {\n    // Required by OnDestroy interface — cleanup handled by Angular signal effects\n  }\n}\n","<pdf-shy-button\n  title=\"Toggle Sidebar\"\n  primaryToolbarId=\"viewsManagerToggleButton\"\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  [disabled]=\"disable()\"\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 { ChangeDetectorRef, Component, effect, input, model, OnDestroy } 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    standalone: false\n})\nexport class PdfVerticalScrollModeComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public onClick?: (() => void) | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n    this.onClick = () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const currentViewMode = this.pageViewMode();\n        if (currentViewMode !== 'multiple' && currentViewMode !== 'infinite-scroll') {\n          this.pageViewMode.set('multiple');\n        }\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.VERTICAL });\n      }));\n    };\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        // scrollMode is read-only input, parent component updates it via binding\n      }));\n    }, opts);\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show() | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Use Vertical Scrolling\"\n  primaryToolbarId=\"scrollVertical\"\n  l10nId=\"pdfjs-scroll-vertical-button\"\n  [toggled]=\"scrollMode() == 0 && pageViewMode() !== 'book'\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-vertical-button-label\"\n  [order]=\"3100\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='-4 -4 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 { ChangeDetectorRef, Component, effect, input, model, OnDestroy } 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    standalone: false\n})\nexport class PdfWrappedScrollModeComponent implements OnDestroy {\n  public show = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public onClick?: (() => void) | undefined;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService, private readonly cdr: ChangeDetectorRef) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n    this.onClick = () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        const currentViewMode = this.pageViewMode();\n        if (currentViewMode !== 'multiple' && currentViewMode !== 'infinite-scroll') {\n          this.pageViewMode.set('multiple');\n        }\n        this.PDFViewerApplication?.eventBus.dispatch('switchscrollmode', { mode: ScrollMode.WRAPPED });\n      }));\n    };\n  }\n\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n\n  public onPdfJsInit(): void {\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('switchscrollmode', () => {\n      queueMicrotask(this.asyncWithCD(() => {\n        // scrollMode is read-only input, parent component updates it via binding\n      }));\n    }, opts);\n  }\n\n  public ngOnDestroy(): void {\n    this.onClick = undefined;\n    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n}\n","<pdf-shy-button\n  [cssClass]=\"show() | responsiveCSSClass: 'always-in-secondary-menu'\"\n  title=\"Wrapped Scrolling\"\n  primaryToolbarId=\"scrollWrapped\"\n  [toggled]=\"scrollMode() == 2\"\n  l10nId=\"pdfjs-scroll-wrapped-button\"\n  [action]=\"onClick\"\n  l10nLabel=\"pdfjs-scroll-wrapped-button-label\"\n  [order]=\"3300\"\n  [closeOnClick]=\"true\"\n  [disabled]=\"disable()\"\n  image=\"<svg aria-hidden='true' focusable='false' width='24px' height='24px' viewBox='-4 -4 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, input, viewChild, computed } 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    standalone: false\n})\nexport class PdfZoomDropdownComponent {\n  public showZoomDropdown = input<ResponsiveVisibility>(true);\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableZoomDropdown = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public zoomLevels = input<Array<string | number>>([]);\n\n  public _zoomLevels = computed(() => {\n    return this.zoomLevels().map((l) => this.valueToZoomLevel(l));\n  });\n\n  public sizeSelector = viewChild<any>('sizeSelector');\n\n  constructor() {}\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    return {\n      id: `scale_${percentage}`,\n      value: String(numericalValue),\n      dataL10nId: 'pdfjs-page-scale-percent',\n      dataL10nArgs: JSON.stringify({ scale: percentage }),\n      displayValue: '',\n    };\n  }\n\n  private snakeToCamel(str: string) {\n    // idea found here: https://hisk.io/javascript-snake-to-camel/\n    return str.replaceAll(/([-_][a-z])/g, (group) => group.toUpperCase().replaceAll('-', '').replaceAll('_', ''));\n  }\n}\n","<span\n  id=\"scaleSelectContainer\"\n  [class]=\"showZoomDropdown() | responsiveCSSClass: 'hiddenTinyView'\"\n>\n  <select\n    id=\"scaleSelect\"\n    title=\"Zoom\"\n    data-l10n-id=\"pdfjs-zoom-select\"\n    [disabled]=\"disableZoomDropdown()\"\n    #sizeSelector\n  >\n    @for (level of _zoomLevels(); track level.id) {\n      <option\n        [id]=\"level.id\"\n        [attr.value]=\"level.value\"\n        [attr.data-l10n-id]=\"level.dataL10nId || null\"\n        [attr.data-l10n-args]=\"level.dataL10nArgs || null\"\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    standalone: false\n})\nexport class PdfZoomInComponent implements OnDestroy {\n  public showZoomButtons = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disabled = true;\n  PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  private readonly 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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    this.PDFViewerApplication?.eventBus.on('scalechanging', this.eventListener, opts);\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy() {\n    this.eventBusAbortController?.abort();\n    this.PDFViewerApplication = undefined;\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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 || disable()\"\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    standalone: false\n})\nexport class PdfZoomOutComponent implements OnDestroy {\n  public showZoomButtons = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disable = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public disabled = true;\n  PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  private readonly 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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    this.PDFViewerApplication?.eventBus.on('scalechanging', this.eventListener, opts);\n    // #3135 end of modification by ngx-extended-pdf-viewer\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy() {\n    this.eventBusAbortController?.abort();\n    this.PDFViewerApplication = undefined;\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\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 || disable()\"\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    standalone: false\n})\nexport class PdfZoomToolbarComponent {\n  public showZoomButtons = input<ResponsiveVisibility>(true);\n\n  public zoomLevels = input(['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4]);\n\n  public showZoomDropdown = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableZoomButtons = input<boolean>(false);\n  public disableZoomDropdown = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n}\n","<!-- #2818 modified by ngx-extended-pdf-viewer -->\n<div id=\"toolbarViewerMiddle\" [class]=\"showZoomButtons() | responsiveCSSClass : 'always-visible'\">\n  <pdf-zoom-out [showZoomButtons]=\"showZoomButtons()\" [disable]=\"disableZoomButtons()\"></pdf-zoom-out>\n  <pdf-zoom-in [showZoomButtons]=\"showZoomButtons()\" [disable]=\"disableZoomButtons()\"></pdf-zoom-in>\n  <pdf-zoom-dropdown class=\"reset-width-padding\" [zoomLevels]=\"zoomLevels()\" [showZoomDropdown]=\"showZoomDropdown()\" [disableZoomDropdown]=\"disableZoomDropdown()\"> </pdf-zoom-dropdown>\n</div>\n<!-- #2818 end of modification by ngx-extended-pdf-viewer -->\n","import { AfterViewInit, Component, ElementRef, input, model, 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  standalone: false,\n})\nexport class PdfToolbarComponent implements AfterViewInit {\n  public customToolbar = input<TemplateRef<any> | 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  public hasTextLayer = input<boolean>(false);\n\n  public mobileFriendlyZoomScale = input<number>(1);\n\n  public primaryMenuVisible = input<boolean>(true);\n\n  public showDownloadButton = input<ResponsiveVisibility>(true);\n\n  public showCommentEditor = input<ResponsiveVisibility>(false);\n\n  public showDrawEditor = input<ResponsiveVisibility>(false);\n\n  public showHighlightEditor = input<ResponsiveVisibility>(true);\n\n  public showTextEditor = input<ResponsiveVisibility>(false);\n\n  public showStampEditor = input<ResponsiveVisibility>(false);\n\n  public showFindButton = input<ResponsiveVisibility | undefined>(undefined);\n\n  public showHandToolButton = input<ResponsiveVisibility>(true);\n\n  public showZoomDropdown = input<ResponsiveVisibility>(true);\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableZoomDropdown = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public handTool = input<boolean>(false);\n\n  public showOpenFileButton = input<ResponsiveVisibility>(true);\n\n  public showPrintButton = input<ResponsiveVisibility>(true);\n\n  public showPagingButtons = input<ResponsiveVisibility>(true);\n\n  public showFirstAndLastPageButtons = input<ResponsiveVisibility>(true);\n\n  public showMovePageButton = input<ResponsiveVisibility>(true);\n\n  public showPreviousAndNextPageButtons = input<ResponsiveVisibility>(true);\n\n  public showPageNumber = input<ResponsiveVisibility>(true);\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePageNumber = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPageLabel = input<ResponsiveVisibility>(true);\n\n  public showPresentationModeButton = input<ResponsiveVisibility>(false);\n\n  public showRotateCwButton = input<ResponsiveVisibility>(true);\n\n  public showRotateCcwButton = input<ResponsiveVisibility>(true);\n\n  public showSecondaryToolbarButton = input<ResponsiveVisibility>(true);\n\n  public showSidebarButton = input<ResponsiveVisibility>(true);\n\n  public showSignatureEditor = input<ResponsiveVisibility>(false);\n\n  public sidebarVisible = input<boolean | undefined>(false);\n\n  public showZoomButtons = input<ResponsiveVisibility>(true);\n\n  public textLayer = input<boolean | undefined>(undefined);\n\n  public toolbarMarginTop = input<string>('0px');\n\n  public toolbarWidth = input<string>('100%');\n\n  public zoomLevels = input<(string | number)[]>(['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4]);\n\n  public pageViewMode = model.required<PageViewModeType>();\n\n  public spread = input.required<SpreadType>();\n\n  public scrollMode = input.required<ScrollModeType>();\n\n  public showPropertiesButton = input<ResponsiveVisibility>(true);\n\n  public showSpreadButton = input<ResponsiveVisibility>(true);\n\n  public showSinglePageModeButton = input<ResponsiveVisibility>(true);\n\n  public showVerticalScrollButton = input<ResponsiveVisibility>(true);\n\n  public showHorizontalScrollButton = input<ResponsiveVisibility>(true);\n\n  public showWrappedScrollButton = input<ResponsiveVisibility>(true);\n\n  public showInfiniteScrollButton = input<ResponsiveVisibility>(true);\n\n  public showBookModeButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableSidebarButton = input<boolean>(false);\n  public disableFindButton = input<boolean>(false);\n  public disablePagingButtons = input<boolean>(false);\n  public disableFirstAndLastPageButtons = input<boolean>(false);\n  public disablePreviousAndNextPageButtons = input<boolean>(false);\n  public disableZoomButtons = input<boolean>(false);\n  public disablePropertiesButton = input<boolean>(false);\n  public disableSpreadButton = input<boolean>(false);\n  public disableSinglePageModeButton = input<boolean>(false);\n  public disableVerticalScrollButton = input<boolean>(false);\n  public disableHorizontalScrollButton = input<boolean>(false);\n  public disableWrappedScrollButton = input<boolean>(false);\n  public disableInfiniteScrollButton = input<boolean>(false);\n  public disableBookModeButton = input<boolean>(false);\n  public disableHandToolButton = input<boolean>(false);\n  public showPageFlipButton = input<ResponsiveVisibility>(false);\n  public disablePageFlipButton = input<boolean>(false);\n  public disableRotateCwButton = input<boolean>(false);\n  public disableRotateCcwButton = input<boolean>(false);\n  public disablePresentationModeButton = input<boolean>(false);\n  public disableOpenFileButton = input<boolean>(false);\n  public disablePrintButton = input<boolean>(false);\n  public disableDownloadButton = input<boolean>(false);\n  public disableMovePageButton = input<boolean>(false);\n  public disableTextEditor = input<boolean>(false);\n  public disableStampEditor = input<boolean>(false);\n  public disableCommentEditor = input<boolean>(false);\n  public disableDrawEditor = input<boolean>(false);\n  public disableHighlightEditor = input<boolean>(false);\n  public disableSignatureEditor = input<boolean>(false);\n  public disableSecondaryToolbarButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public onToolbarLoaded = output<HTMLElement>(); // NOSONAR — backward-compatible event name\n\n  public findbarVisible = input<boolean>(false);\n\n  constructor(private readonly 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.pageViewMode.set(pageViewMode);\n    }\n  }\n}\n","<div\n  class=\"toolbar\"\n  [class.invisible]=\"!primaryMenuVisible()\"\n  [style.transform]=\"'scale(' + mobileFriendlyZoomScale() + ')'\"\n  [style.transformOrigin]=\"'left center'\"\n  [style.width]=\"toolbarWidth()\"\n  [style.marginTop]=\"toolbarMarginTop()\"\n>\n  <div id=\"toolbarContainer\">\n    <ng-content *ngTemplateOutlet=\"customToolbar() || 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      <!-- #2818 modified by ngx-extended-pdf-viewer -->\n      <pdf-toggle-sidebar\n        [show]=\"showSidebarButton()\"\n        [sidebarVisible]=\"sidebarVisible()\"\n        [disable]=\"disableSidebarButton()\"\n      ></pdf-toggle-sidebar>\n      <pdf-find-button\n        [showFindButton]=\"showFindButton()\"\n        [textLayer]=\"textLayer()\"\n        [findbarVisible]=\"findbarVisible()\"\n        [hasTextLayer]=\"hasTextLayer()\"\n        [disable]=\"disableFindButton()\"\n      ></pdf-find-button>\n      <pdf-paging-area\n        [showPagingButtons]=\"showPagingButtons()\"\n        [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons()\"\n        [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons()\"\n        [showPageNumber]=\"showPageNumber()\"\n        [disablePageNumber]=\"disablePageNumber()\"\n        [showPageLabel]=\"showPageLabel()\"\n        [disablePagingButtons]=\"disablePagingButtons()\"\n        [disableFirstAndLastPageButtons]=\"disableFirstAndLastPageButtons()\"\n        [disablePreviousAndNextPageButtons]=\"disablePreviousAndNextPageButtons()\"\n      ></pdf-paging-area>\n      <!-- #2818 end of modification by ngx-extended-pdf-viewer -->\n    </div>\n    <!-- #2818 modified by ngx-extended-pdf-viewer -->\n    <pdf-zoom-toolbar\n      id=\"toolbarViewerMiddleContainer\"\n      [showZoomButtons]=\"showZoomButtons()\"\n      [showZoomDropdown]=\"showZoomDropdown()\"\n      [disableZoomDropdown]=\"disableZoomDropdown()\"\n      [zoomLevels]=\"zoomLevels()\"\n      [disableZoomButtons]=\"disableZoomButtons()\"\n    ></pdf-zoom-toolbar>\n    <!-- #2818 end of modification by ngx-extended-pdf-viewer -->\n    <div id=\"toolbarViewerRight\">\n      <!-- #2818 modified by ngx-extended-pdf-viewer -->\n      <pdf-document-properties [show]=\"showPropertiesButton()\" [disable]=\"disablePropertiesButton()\"></pdf-document-properties>\n      <pdf-no-spread\n        [scrollMode]=\"scrollMode()\"\n        [show]=\"showSpreadButton()\"\n        [disable]=\"disableSpreadButton()\"\n      ></pdf-no-spread>\n      <pdf-odd-spread\n        [scrollMode]=\"scrollMode()\"\n        [show]=\"showSpreadButton()\"\n        [disable]=\"disableSpreadButton()\"\n      ></pdf-odd-spread>\n      <pdf-even-spread\n        [scrollMode]=\"scrollMode()\"\n        [show]=\"showSpreadButton()\"\n        [disable]=\"disableSpreadButton()\"\n      ></pdf-even-spread>\n      <pdf-single-page-mode\n        [show]=\"showSinglePageModeButton()\"\n        [pageViewMode]=\"pageViewMode()\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode()\"\n        [disable]=\"disableSinglePageModeButton()\"\n      ></pdf-single-page-mode>\n      <pdf-vertical-scroll-mode\n        [show]=\"showVerticalScrollButton()\"\n        [pageViewMode]=\"pageViewMode()\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode()\"\n        [disable]=\"disableVerticalScrollButton()\"\n      ></pdf-vertical-scroll-mode>\n      <pdf-horizontal-scroll\n        [show]=\"showHorizontalScrollButton()\"\n        [pageViewMode]=\"pageViewMode()\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode()\"\n        [disable]=\"disableHorizontalScrollButton()\"\n      ></pdf-horizontal-scroll>\n      <pdf-wrapped-scroll-mode\n        [show]=\"showWrappedScrollButton()\"\n        [pageViewMode]=\"pageViewMode()\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode()\"\n        [disable]=\"disableWrappedScrollButton()\"\n      ></pdf-wrapped-scroll-mode>\n      <pdf-infinite-scroll\n        [show]=\"showInfiniteScrollButton()\"\n        [pageViewMode]=\"pageViewMode()\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode()\"\n        [disable]=\"disableInfiniteScrollButton()\"\n      ></pdf-infinite-scroll>\n      <pdf-book-mode\n        [show]=\"showBookModeButton()\"\n        [pageViewMode]=\"pageViewMode()\"\n        (pageViewModeChange)=\"updatePageViewMode($event)\"\n        [scrollMode]=\"scrollMode()\"\n        [disable]=\"disableBookModeButton()\"\n      ></pdf-book-mode>\n      <pdf-hand-tool\n        [showHandToolButton]=\"showHandToolButton()\"\n        [handTool]=\"handTool()\"\n        [disable]=\"disableHandToolButton()\"\n      ></pdf-hand-tool>\n      <pdf-select-tool\n        [showSelectToolButton]=\"showHandToolButton()\"\n        [handTool]=\"handTool()\"\n        [disable]=\"disableHandToolButton()\"\n      ></pdf-select-tool>\n      <pdf-page-flip-tool\n        [showPageFlipButton]=\"showPageFlipButton()\"\n        [disable]=\"disablePageFlipButton()\"\n      ></pdf-page-flip-tool>\n      <pdf-rotate-page-cw [showRotateCwButton]=\"showRotateCwButton()\" [disable]=\"disableRotateCwButton()\"> </pdf-rotate-page-cw>\n      <pdf-rotate-page-ccw [showRotateCcwButton]=\"showRotateCcwButton()\" [disable]=\"disableRotateCcwButton()\"> </pdf-rotate-page-ccw>\n      <pdf-presentation-mode [showPresentationModeButton]=\"showPresentationModeButton()\" [disable]=\"disablePresentationModeButton()\"></pdf-presentation-mode>\n      <pdf-open-file [showOpenFileButton]=\"showOpenFileButton()\" [disable]=\"disableOpenFileButton()\"></pdf-open-file>\n      <pdf-print [showPrintButton]=\"showPrintButton()\" [disable]=\"disablePrintButton()\"></pdf-print>\n      <pdf-download [showDownloadButton]=\"showDownloadButton()\" [disable]=\"disableDownloadButton()\"></pdf-download>\n\n      <!-- #2943 modified by ngx-extended-pdf-viewer -->\n      <pdf-move-down [showMoveDownButton]=\"showMovePageButton()\" [disable]=\"disableMovePageButton()\"></pdf-move-down>\n      <pdf-move-up [showMoveUpButton]=\"showMovePageButton()\" [disable]=\"disableMovePageButton()\"></pdf-move-up>\n      <!-- #2943 end of modification by ngx-extended-pdf-viewer -->\n\n      <pdf-editor\n        [showCommentEditor]=\"showCommentEditor()\"\n        [showDrawEditor]=\"showDrawEditor()\"\n        [showHighlightEditor]=\"showHighlightEditor()\"\n        [showTextEditor]=\"showTextEditor()\"\n        [showStampEditor]=\"showStampEditor()\"\n        [showSignatureEditor]=\"showSignatureEditor()\"\n        [disableCommentEditor]=\"disableCommentEditor()\"\n        [disableDrawEditor]=\"disableDrawEditor()\"\n        [disableHighlightEditor]=\"disableHighlightEditor()\"\n        [disableTextEditor]=\"disableTextEditor()\"\n        [disableStampEditor]=\"disableStampEditor()\"\n        [disableSignatureEditor]=\"disableSignatureEditor()\"\n      ></pdf-editor>\n      <pdf-toggle-secondary-toolbar [showSecondaryToolbarButton]=\"showSecondaryToolbarButton()\" [disable]=\"disableSecondaryToolbarButton()\"> </pdf-toggle-secondary-toolbar>\n      <!-- #2818 end of modification by ngx-extended-pdf-viewer -->\n    </div>\n  </div>\n</ng-template>\n","import { effect, Pipe, PipeTransform } from '@angular/core';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\nimport { PDFNotificationService } from './pdf-notification-service';\n\n@Pipe({\n    name: 'translate',\n    standalone: false\n})\nexport class TranslatePipe implements PipeTransform {\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n  constructor(notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  transform(key: string, fallback: string): Promise<string | undefined> {\n    return this.translate(key, fallback);\n  }\n\n  public async translate(key: string, englishText: string): Promise<string | undefined> {\n    while (!this.PDFViewerApplication) {\n      await new Promise((resolve) => setTimeout(resolve, 1));\n    }\n    return this.PDFViewerApplication?.l10n.get(key, null, englishText);\n  }\n}\n","import { isPlatformBrowser, PlatformLocation } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  effect,\n  ElementRef,\n  HostListener,\n  Inject,\n  input,\n  InputSignal,\n  model,\n  ModelSignal,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  output,\n  PLATFORM_ID,\n  Renderer2,\n  TemplateRef,\n  viewChild,\n} from '@angular/core';\nimport { PositioningService } from './dynamic-css/positioning.service';\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 { 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, isPdfjsVersionAtLeast, pdfDefaultOptions } from './options/pdf-default-options';\nimport { PageViewModeType, ScrollModeChangedEvent, ScrollModeType } from './options/pdf-viewer';\nimport { IPDFViewerApplication, PDFDocumentProxy, PDFPageProxy } from './options/pdf-viewer-application';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { VerbosityLevel } from './options/verbosity-level';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { PDFNotificationService } from './pdf-notification-service';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { IOSCanvasOptimizationService } from './services/ios-canvas-optimization.service';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { convertBlobToUint8Array } from './utils/blob-conversion';\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 { LinkAnnotationsAddedEvent } from './events/link-annotations-added-event';\nimport { OutlineLoadedEvent } from './events/outline-loaded-event';\nimport { ToggleSidebarEvent } from './events/toggle-sidebar-event';\nimport { XfaLayerRenderedEvent } from './events/xfa-layer-rendered-event';\nimport { NgxFormSupport } from './ngx-form-support';\nimport { NgxHasHeight } from './ngx-has-height';\nimport { NgxKeyboardManagerService } from './ngx-keyboard-manager.service';\nimport { PdfSidebarView } from './options/pdf-sidebar-views';\nimport { SpreadType } from './options/spread-type';\nimport { ZoomType } from './options/zoom-type';\nimport { PdfCspPolicyService } from './pdf-csp-policy.service';\nimport { PDFScriptLoaderService } from './pdf-script-loader.service';\nimport { ResponsiveVisibility } from './responsive-visibility';\n\ndeclare class ResizeObserver {\n  constructor(param: () => void);\n  public disconnect(): void;\n  public observe(div: HTMLElement): void;\n}\n\ninterface ElementAndPosition {\n  element: HTMLElement;\n  x: number;\n  y: number;\n  // #3074 modified by ngx-extended-pdf-viewer\n  popupElements?: Array<HTMLElement>; // Elements from aria-controls popup to insert after this element\n  // #3074 end of modification by ngx-extended-pdf-viewer\n}\n\nexport interface FormDataType {\n  [fieldName: string]: null | string | number | boolean | string[];\n}\n\nexport type PdfSrcType = string | ArrayBuffer | Blob | Uint8Array | URL | { range: any } | undefined;\n// Intersection with {} prevents TypeScript from simplifying these types in generated .d.ts files\nexport type Base64SrcType = (string | null | undefined) & {}; // NOSONAR — prevents TS from simplifying in .d.ts\nexport type PageType = (number | undefined) & {}; // NOSONAR — prevents TS from simplifying in .d.ts\nexport type NamedDestType = (string | undefined) & {}; // NOSONAR — prevents TS from simplifying in .d.ts\nexport type PasswordType = (string | undefined) & {}; // NOSONAR — prevents TS from simplifying in .d.ts\n\nexport function isIOS(): boolean {\n  if (typeof globalThis.window === 'undefined') {\n    return false;\n  }\n\n  const userAgent = navigator?.userAgent;\n  if (!userAgent) {\n    return false;\n  }\n\n  return (\n    /iPad|iPhone|iPod/.test(userAgent) ||\n    // iPad on iOS 13+ detection (reports as Mac)\n    (userAgent.includes('Mac') && 'ontouchend' in document)\n  );\n}\n\n@Component({\n  selector: 'ngx-extended-pdf-viewer',\n  templateUrl: './ngx-extended-pdf-viewer.component.html',\n  styleUrls: ['./ngx-extended-pdf-viewer.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false, // NOSONAR — intentional for backward compatibility with NgModule consumers\n})\nexport class NgxExtendedPdfViewerComponent implements OnInit, OnDestroy, NgxHasHeight {\n  private readonly formSupport = new NgxFormSupport();\n\n  /** #3131 AbortController to unregister all eventBus listeners on destroy. */\n  private eventBusAbortController: AbortController | null = null;\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  public dummyComponents = viewChild<PdfDummyComponentsComponent>(PdfDummyComponentsComponent);\n\n  public root = viewChild<ElementRef>('root');\n\n  public annotationEditorEvent = output<AnnotationEditorEvent>();\n  /* UI templates */\n  public customFindbarInputArea: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customToolbar: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customFindbar: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customFindbarButtons: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customPdfViewer: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customSecondaryToolbar: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customSidebar: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customThumbnail: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public customFreeFloatingBar: InputSignal<TemplateRef<any> | undefined> = input();\n\n  public showFreeFloatingBar = input(true);\n\n  public enableDragAndDrop = input(true);\n\n  /**\n   * pdf.js 6.1 option: when `false`, hides the download and save buttons AND\n   * disables the download manager entirely — a hard \"no saving\" lock, stronger\n   * than just hiding the button via `showDownloadButton`. Only applied when the\n   * loaded engine is pdf.js 6.1 or newer; a no-op on older engines.\n   */\n  public supportsDownloading = input(true);\n\n  public forceUsingLegacyES5 = input(false);\n\n  public localizationInitialized: boolean = false;\n\n  private resizeObserver: ResizeObserver | undefined;\n\n  private initialAngularFormData?: FormDataType = undefined;\n\n  public formData = input<FormDataType | undefined>(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _formDataEffect = effect(() => {\n    const data = this.formData();\n    if (data !== undefined) {\n      const previousFormData = { ...this.formSupport.formData };\n      this.initialAngularFormData ??= data;\n      this.formSupport.formData = data;\n      this.formSupport.updateFormFieldsInPdfCalledByNgOnChanges(previousFormData);\n    }\n  });\n\n  public disableForms = input(false);\n\n  @Output()\n  public get formDataChange() {\n    return this.formSupport.formDataChange;\n  }\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 pageViewMode = model<PageViewModeType>('multiple');\n\n  private _previousPageViewMode: PageViewModeType = 'multiple';\n\n  // #3140 the hand tool setting book mode replaced, so leaving book mode can restore it\n  private handToolBeforeBookMode: boolean | undefined = undefined;\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _pageViewModeEffect = effect(() => {\n    const viewMode = this.pageViewMode();\n    if (!isPlatformBrowser(this.platformId)) return;\n\n    // Skip if the value hasn't actually changed. Without this guard,\n    // the effect fires on initialization with 'multiple', which triggers\n    // handleMultiplePageMode() → restoreHeight, incorrectly replacing\n    // the user's height with a computed pixel value (#3183).\n    if (this._previousPageViewMode === viewMode) return;\n    this._previousPageViewMode = viewMode;\n\n    const mustRedraw = !this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized && viewMode === 'book';\n\n    const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    PDFViewerApplicationOptions?.set('pageViewMode', viewMode);\n\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication) {\n      PDFViewerApplication.pdfViewer.pageViewMode = viewMode;\n      if (PDFViewerApplication.findController) {\n        PDFViewerApplication.findController._pageViewMode = viewMode;\n      }\n    }\n\n    this.handleViewMode(viewMode);\n\n    // #3140 modified by ngx-extended-pdf-viewer\n    // When leaving book mode while in PAGE_FLIP cursor mode, switch back to SELECT.\n    if (viewMode !== 'book' && this.initialized) {\n      if (this.showPageFlipButton()) {\n        // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n        PDFViewerApplication?.eventBus?.dispatch('switchcursortool', { tool: PdfCursorTools.SELECT });\n      } else if (this.handToolBeforeBookMode !== undefined) {\n        // Book mode had switched the hand tool off, so give the user back the tool they had.\n        const tool = this.handToolBeforeBookMode ? PdfCursorTools.HAND : PdfCursorTools.SELECT;\n        PDFViewerApplication?.eventBus?.dispatch('switchcursortool', { tool });\n      }\n    }\n    if (viewMode !== 'book') {\n      this.handToolBeforeBookMode = undefined;\n    }\n    // #3140 end of modification by ngx-extended-pdf-viewer\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.set(ScrollModeType.vertical);\n    }\n  }\n\n  private handleInfiniteScrollMode(): void {\n    if (this.scrollMode() === ScrollModeType.page || this.scrollMode() === ScrollModeType.horizontal) {\n      this.scrollMode.set(ScrollModeType.vertical);\n      // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n      this.pdfScriptLoaderService.PDFViewerApplication?.eventBus?.dispatch('switchscrollmode', { mode: Number(this.scrollMode()) });\n    }\n    setTimeout(\n      this.asyncWithCD(() => {\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\n  // since pdf.js, our custom single-page-mode has been replaced by the standard scrollMode=\"page\"\n  private handleSinglePageMode(): void {\n    this.scrollMode.set(ScrollModeType.page);\n    this.pageViewMode.set('single');\n  }\n\n  private handleBookMode(): void {\n    // Note: showBorders is an input signal and cannot be set here\n    // The value should be set by the parent component\n    if (this.scrollMode() !== ScrollModeType.vertical) {\n      this.scrollMode.set(ScrollModeType.vertical);\n    }\n    // #3140 modified by ngx-extended-pdf-viewer\n    // When entering book mode with the page-flip button enabled,\n    // automatically switch to PAGE_FLIP cursor tool.\n    if (!this.initialized) {\n      return;\n    }\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (this.showPageFlipButton()) {\n      // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n      PDFViewerApplication?.eventBus?.dispatch('switchcursortool', { tool: PdfCursorTools.PAGE_FLIP });\n    } else if (this.enableFlipByDrag() && this.handTool()) {\n      // Without the page-flip button the hand tool would swallow the drag gesture that\n      // turns the page, so switch it off - and remember it, to restore it later.\n      this.handToolBeforeBookMode = this.handTool();\n      PDFViewerApplication?.eventBus?.dispatch('switchcursortool', { tool: PdfCursorTools.SELECT });\n    }\n    // #3140 end of modification by ngx-extended-pdf-viewer\n  }\n\n  private handleMultiplePageMode(): void {\n    if (this.scrollMode() === ScrollModeType.page) {\n      this.scrollMode.set(ScrollModeType.vertical);\n    }\n    setTimeout(\n      this.asyncWithCD(() => {\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\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  public progress = output<ProgressBarEvent>(); // NOSONAR — backward-compatible event name\n\n  private readonly secondaryToolbarComponent = viewChild<PdfSecondaryToolbarComponent>('pdfSecondaryToolbarComponent');\n\n  private readonly dynamicCSSComponent = viewChild<DynamicCssComponent>('DynamicCssComponent');\n\n  private readonly sidebarComponent = viewChild<PdfSidebarComponent>('pdfsidebar');\n\n  /* regular attributes */\n\n  public src = model<PdfSrcType>(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _srcEffect = effect(() => {\n    const url = this.src();\n    if (typeof globalThis.window === 'undefined') return;\n\n    // Skip processing if change was triggered by user\n    if (this.srcChangeTriggeredByUser) {\n      this.srcChangeTriggeredByUser = false;\n      return;\n    }\n\n    // Type conversion\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        const converted = await convertBlobToUint8Array(url);\n        this._src = converted.buffer;\n        if (this.initialized && this._src !== this._lastOpenedSrc) {\n          // #3131\n          // Close book mode if needed\n          if (this.pageViewMode() === 'book') {\n            const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n            PDFViewerApplication?.pdfViewer?.destroyBookMode();\n            PDFViewerApplication?.pdfViewer?.stopRendering();\n            PDFViewerApplication?.pdfThumbnailViewer?.stopRendering();\n          }\n          if (this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized) {\n            this.openPDF();\n          } else {\n            (async () => this.openPDF2())();\n          }\n        }\n      })();\n      return;\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    // Handle PDF opening/closing\n    if (this.initialized) {\n      // Close book mode if needed\n      if (this.pageViewMode() === 'book') {\n        const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n        PDFViewerApplication?.pdfViewer?.destroyBookMode();\n        PDFViewerApplication?.pdfViewer?.stopRendering();\n        PDFViewerApplication?.pdfThumbnailViewer?.stopRendering();\n      }\n\n      if (this._src && this._src !== this._lastOpenedSrc) {\n        // #3131\n        if (this.pdfScriptLoaderService.ngxExtendedPdfViewerIncompletelyInitialized) {\n          this.openPDF();\n        } else {\n          const initialized = this.notificationService.onPDFJSInitSignal();\n          if (initialized) {\n            (async () => this.openPDF2())();\n          }\n        }\n      } else if (!this._src) {\n        // Close document when src is cleared\n        this._lastOpenedSrc = undefined; // #3131\n        const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n        (async () => this.closeDocument(PDFViewerApplication))();\n      }\n    }\n  });\n\n  private _src: string | ArrayBuffer | Uint8Array | { range: any } | undefined;\n\n  /** #3131 Tracks the last _src value that was actually opened, to avoid redundant re-opens when the effect re-fires. */\n  private _lastOpenedSrc: string | ArrayBuffer | Uint8Array | { range: any } | undefined;\n\n  public scrollMode = model<ScrollModeType>(ScrollModeType.vertical);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _scrollModeEffect = effect(() => {\n    const value = this.scrollMode();\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication?.pdfViewer) {\n      if (PDFViewerApplication.pdfViewer.scrollMode !== Number(value)) {\n        // #3216 eventBus may be undefined during destroy/recreate transitions even when pdfViewer is set.\n        PDFViewerApplication.eventBus?.dispatch('switchscrollmode', { mode: Number(value) });\n      }\n    }\n    if (value === ScrollModeType.page) {\n      if (this.pageViewMode() !== 'single') {\n        this.pageViewMode.set('single');\n      }\n    } else if (this.pageViewMode() === 'single' || value === ScrollModeType.horizontal) {\n      this.pageViewMode.set('multiple');\n    }\n  });\n\n  public authorization = input<Object | boolean | undefined>(undefined);\n\n  public httpHeaders = input<Object | undefined>(undefined);\n\n  public contextMenuAllowed = input(true);\n\n  public afterPrint = output<void>();\n\n  public beforePrint = output<void>();\n\n  public currentZoomFactor = output<number>();\n\n  /** This field stores the previous zoom level if the page is enlarged with a double-tap or double-click */\n  private previousZoom: ZoomType;\n\n  public enablePrint = input(true);\n\n  public enablePrintAutoRotate = input<boolean>(pdfDefaultOptions.enablePrintAutoRotate);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _enablePrintAutoRotateEffect = effect(() => {\n    const value = this.enablePrintAutoRotate();\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  public forceFullReloadOfJavaScriptCode = input(false);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public showEditorButtons = input<ResponsiveVisibility>(true);\n\n  public disableEditorButtons = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showTextEditor = input<ResponsiveVisibility>('xxl');\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableTextEditor = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showStampEditor = input<ResponsiveVisibility>('xxl');\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableStampEditor = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showCommentEditor = input<ResponsiveVisibility>(pdfDefaultOptions.enableComment ? 'always-in-secondary-menu' : false);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableCommentEditor = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showDrawEditor = input<ResponsiveVisibility>('xxl');\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableDrawEditor = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showHighlightEditor = input<ResponsiveVisibility>('xxl');\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableHighlightEditor = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showSignatureEditor = input<ResponsiveVisibility>('xxl');\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableSignatureEditor = input<boolean>(false);\n\n  // Computed signals for effective show values when showEditorButtons group is used\n  public effectiveShowTextEditor = computed(() => (this.showEditorButtons() === false ? false : this.showTextEditor()));\n  public effectiveShowStampEditor = computed(() => (this.showEditorButtons() === false ? false : this.showStampEditor()));\n  public effectiveShowCommentEditor = computed(() => (this.showEditorButtons() === false ? false : this.showCommentEditor()));\n  public effectiveShowDrawEditor = computed(() => (this.showEditorButtons() === false ? false : this.showDrawEditor()));\n  public effectiveShowHighlightEditor = computed(() => (this.showEditorButtons() === false ? false : this.showHighlightEditor()));\n  public effectiveShowSignatureEditor = computed(() => (this.showEditorButtons() === false ? false : this.showSignatureEditor()));\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  /** How many log messages should be printed?\n   * Legal values: VerbosityLevel.INFOS (= 5), VerbosityLevel.WARNINGS (= 1), VerbosityLevel.ERRORS (= 0) */\n  public logLevel = input(VerbosityLevel.WARNINGS);\n\n  /** Use the minified (minifiedJSLibraries=\"true\", which is the default) or the user-readable pdf.js library (minifiedJSLibraries=\"false\") */\n  public minifiedJSLibraries = model<boolean>(pdfDefaultOptions._internalFilenameSuffix === '.min');\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _minifiedJSLibrariesEffect = effect(() => {\n    const value = this.minifiedJSLibraries();\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  public printResolution = input<number | null>(null);\n\n  public rotation = model<0 | 90 | 180 | 270>(0);\n\n  public annotationLayerRendered = output<AnnotationLayerRenderedEvent>();\n\n  public linkAnnotationsAdded = output<LinkAnnotationsAddedEvent>();\n\n  public annotationEditorLayerRendered = output<AnnotationEditorLayerRenderedEvent>();\n\n  public xfaLayerRendered = output<XfaLayerRenderedEvent>();\n\n  public outlineLoaded = output<OutlineLoadedEvent>();\n\n  public attachmentsloaded = output<AttachmentLoadedEvent>();\n\n  public layersloaded = output<LayersLoadedEvent>();\n\n  public hasSignature!: boolean;\n\n  public base64Src: InputSignal<string | null | undefined> = input();\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly base64SrcEffect = effect(() => {\n    const base64 = this.base64Src();\n    if (!isPlatformBrowser(this.platformId)) return;\n\n    if (base64) {\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); // NOSONAR — base64 decoded string is single-byte ASCII, charCodeAt is correct\n      }\n      this.src.set(bytes.buffer);\n    }\n    // Don't clear _src when base64Src is undefined - src might be set from [src] binding\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  // Protected backing fields\n  protected _minHeight?: string | undefined;\n  protected _height: string | undefined = '100%';\n\n  // Public getters and setters for NgxHasHeight interface\n  // These allow internal code (like dynamic-css.component) to read/write height\n  public get minHeight(): string | undefined {\n    return this._minHeight;\n  }\n  public set minHeight(value: string | undefined) {\n    this._minHeight = value;\n  }\n\n  public get height(): string | undefined {\n    return this._height;\n  }\n  public set height(value: string | undefined) {\n    this._height = value;\n  }\n\n  // Public input signals (templates bind to these)\n  public minHeightInput = input<string | undefined>(undefined, { alias: 'minHeight' }); // NOSONAR — alias for backward compat\n  public heightInput = input<string | undefined>('100%', { alias: 'height' }); // NOSONAR\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _heightEffect = effect(() => {\n    let h = this.heightInput();\n    if (!h) {\n      h = '100%';\n    }\n\n    // Sync to protected backing fields\n    this._minHeight = this.minHeightInput();\n\n    this.autoHeight = false;\n    if (h === 'auto') {\n      this.autoHeight = true;\n      // When height is 'auto', set _height to undefined so that\n      // checkHeight() → adjustHeight() can compute the correct pixel value.\n      // Setting _height to 'auto' would cause isHeightDefinedWithUnits()\n      // to return true, skipping the auto-height calculation entirely.\n      this._height = undefined;\n    } else {\n      this._height = h;\n    }\n\n    setTimeout(\n      this.asyncWithCD(() => {\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\n  public backgroundColor = input<string | undefined>(undefined);\n\n  public pdfBackgroundColor = input<string | undefined>(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _pdfBackgroundColorEffect = effect(() => {\n    const color = this.pdfBackgroundColor();\n    // Skip during initialization — the initial value is set in the init code path\n    if (!this.initialized) return;\n\n    const PDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplicationOptions && PDFViewerApplication?.pdfViewer) {\n      PDFViewerApplicationOptions.set('pdfBackgroundColor', color);\n      PDFViewerApplication.pdfViewer.refresh();\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _readingDirectionEffect = effect(() => {\n    const direction = this.readingDirection();\n    const isRtl = direction === 'rtl';\n    const isLtr = direction === 'ltr';\n    const viewer = document.getElementById('viewer');\n    if (viewer) {\n      viewer.classList.toggle('readingDirection-rtl', isRtl);\n      viewer.classList.toggle('readingDirection-ltr', isLtr);\n    }\n    const viewerContainer = document.getElementById('viewerContainer');\n    if (viewerContainer) {\n      viewerContainer.classList.toggle('readingDirection-rtl', isRtl);\n    }\n    if (!this.initialized) return;\n    const PDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    if (PDFViewerApplicationOptions) {\n      PDFViewerApplicationOptions.set('readingDirection', direction);\n    }\n  });\n\n  /** Allows the user to define the name of the file after clicking \"download\" */\n  public filenameForDownload = input<string | undefined>(undefined);\n\n  /** Allows the user to disable the keyboard bindings completely */\n  public ignoreKeyboard = input(false);\n\n  /** Allows the user to disable a list of key bindings. */\n  public ignoreKeys = input<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 = input<Array<string>>([]);\n\n  public hasTextLayer = true;\n\n  /** Allows the user to put the viewer's svg images into an arbitrary folder */\n  public imageResourcesPath = input(assetsUrl(pdfDefaultOptions.assetsFolder) + '/images/');\n\n  /** Allows the user to put their locale folder into an arbitrary folder */\n  public localeFolderPath = input(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  public language = input<string | undefined>(typeof globalThis.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  public listenToURL = input(false);\n\n  /** Navigate to a certain \"named destination\" */\n  public nameddest: InputSignal<string | undefined> = input();\n\n  /** allows you to pass a password to read password-protected files */\n  public password: InputSignal<string | undefined> = input();\n\n  public replaceBrowserPrint = input(true);\n\n  private readonly originalPrint = typeof window !== 'undefined' ? window.print : undefined;\n\n  /** Store the original color-scheme value to restore it on destroy */\n  private originalColorScheme: string | null = null;\n\n  public useInlineScripts = input(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  public showUnverifiedSignatures = input(false);\n\n  public startTabindex = input<number>();\n\n  public showSidebarButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableSidebarButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _showSidebarButtonEffect = effect(() => {\n    const show = this.showSidebarButton();\n    if (!isPlatformBrowser(this.platformId)) {\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  public _showSidebarButton: ResponsiveVisibility = true;\n\n  public sidebarVisible = model<boolean | undefined>(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _sidebarVisibleEffect = effect(() => {\n    const value = this.sidebarVisible();\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    // PDF.js v5.4.530 renamed pdfSidebar to viewsManager\n    if (PDFViewerApplication?.viewsManager) {\n      if (value) {\n        PDFViewerApplication.viewsManager.open();\n        const view = Number(this.activeSidebarView());\n        if (view === 1 || view === 2 || view === 3 || view === 4) {\n          PDFViewerApplication.viewsManager.switchView(view, true);\n        } else {\n          console.error('[activeSidebarView] must be an integer value between 1 and 4');\n        }\n      } else {\n        PDFViewerApplication.viewsManager.close();\n      }\n    }\n  });\n\n  public activeSidebarView = model<PdfSidebarView>(PdfSidebarView.OUTLINE);\n\n  public findbarVisible = model(false);\n\n  public propertiesDialogVisible = model(false);\n\n  public showFindButton = input<ResponsiveVisibility | undefined>(undefined);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableFindButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showFindHighlightAll = input(true);\n\n  public showFindMatchCase = input(true);\n\n  public showFindMultiple = input<boolean>(true);\n\n  public showFindRegexp = input<boolean>(false);\n\n  public showFindEntireWord = input(true);\n\n  public showFindMatchDiacritics = input(true);\n\n  public showFindResultsCount = input(true);\n\n  public showFindMessages = input(true);\n\n  public showMovePageButton = input<ResponsiveVisibility>(false);\n\n  /** Enable page reordering via drag-and-drop in the thumbnail sidebar.\n   *  This is read at initialization time only. Changing it after the viewer has loaded\n   *  requires destroying and recreating the component. */\n  public enablePageReorderingInput = input<boolean | undefined>(undefined, { alias: 'enablePageReordering' }); // NOSONAR — alias for backward compat\n\n  /** Enable split & merge: copy, cut, delete, and export selected pages via the sidebar manage menu.\n   *  This is read at initialization time only. Changing it after the viewer has loaded\n   *  requires destroying and recreating the component. */\n  public enableSplitMergeInput = input<boolean | undefined>(undefined, { alias: 'enableSplitMerge' }); // NOSONAR\n\n  /** Enable merging: adds an \"Add file\" button to the thumbnail sidebar that lets the user\n   *  insert another PDF (or images, as additional pages) into the current document.\n   *  Experimental upstream — opt in deliberately.\n   *  This is read at initialization time only. Changing it after the viewer has loaded\n   *  requires destroying and recreating the component. */\n  public enableMergeInput = input<boolean | undefined>(undefined, { alias: 'enableMerge' }); // NOSONAR\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableMovePageButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPagingButtons = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePagingButtons = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showFirstAndLastPageButtons = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableFirstAndLastPageButtons = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPreviousAndNextPageButtons = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePreviousAndNextPageButtons = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPageNumber = input<ResponsiveVisibility>(true);\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePageNumber = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPageLabel = input<ResponsiveVisibility>(true);\n\n  public showZoomButtons = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableZoomButtons = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showZoomDropdown = input<ResponsiveVisibility>(true);\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableZoomDropdown = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPresentationModeButton = input<ResponsiveVisibility>(false);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePresentationModeButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showOpenFileButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableOpenFileButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPrintButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePrintButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showDownloadButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableDownloadButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public theme = input<'dark' | 'light' | 'custom' | string>('light');\n\n  public showToolbar = input(true);\n\n  public showSecondaryToolbarButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableSecondaryToolbarButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  // Individual button visibility controls (use model for writability via meta-inputs)\n  public showSinglePageModeButton = model<ResponsiveVisibility>(true);\n  public showVerticalScrollButton = model<ResponsiveVisibility>(true);\n  public showHorizontalScrollButton = model<ResponsiveVisibility>(true);\n  public showWrappedScrollButton = model<ResponsiveVisibility>(true);\n  public showInfiniteScrollButton = model<ResponsiveVisibility>(true);\n  public showBookModeButton = model<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableSinglePageModeButton = input<boolean>(false);\n  public disableVerticalScrollButton = input<boolean>(false);\n  public disableHorizontalScrollButton = input<boolean>(false);\n  public disableWrappedScrollButton = input<boolean>(false);\n  public disableInfiniteScrollButton = input<boolean>(false);\n  public disableBookModeButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  // Meta-input for convenience (sets all scrolling buttons at once)\n  public showScrollingButtons = input<ResponsiveVisibility | undefined>(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _showScrollingButtonsEffect = effect(() => {\n    const value = this.showScrollingButtons();\n    if (value !== undefined) {\n      this.showSinglePageModeButton.set(value);\n      this.showVerticalScrollButton.set(value);\n      this.showHorizontalScrollButton.set(value);\n      this.showWrappedScrollButton.set(value);\n      this.showInfiniteScrollButton.set(value);\n      this.showBookModeButton.set(value);\n    }\n  });\n\n  // Rotate button controls (use model for writability via meta-input)\n  public showRotateCwButton = model<ResponsiveVisibility>(true);\n  public showRotateCcwButton = model<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableRotateCwButton = input<boolean>(false);\n  public disableRotateCcwButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  // Meta-input for convenience (sets both rotate buttons at once)\n  public showRotateButton = input<ResponsiveVisibility | undefined>(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _showRotateButtonEffect = effect(() => {\n    const value = this.showRotateButton();\n    if (value !== undefined) {\n      this.showRotateCwButton.set(value);\n      this.showRotateCcwButton.set(value);\n    }\n  });\n\n  public handTool = model<boolean>(!isIOS());\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _handToolEffect = effect(() => {\n    const value = this.handTool();\n    if (isIOS() && value) {\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      this.handTool.set(false);\n      return;\n    }\n    if (this.initialized) {\n      // #3140 modified by ngx-extended-pdf-viewer\n      // When the page-flip button is shown, the cursor tool is fully managed by\n      // the three toolbar buttons (select/hand/page-flip), not by the handTool binding.\n      // Calling selectCursorTool() here would override user-initiated tool changes.\n      if (this.showPageFlipButton()) {\n        return;\n      }\n      // #3140 end of modification by ngx-extended-pdf-viewer\n      // #3179: Tell pdf.js to switch the cursor tool. selectCursorTool() reads\n      // the current value of this.handTool() internally and dispatches\n      // 'switchcursortool' with tool=1 (hand) or tool=0 (text selection).\n      this.selectCursorTool();\n    }\n  });\n\n  public showHandToolButton = input<ResponsiveVisibility>(false);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableHandToolButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  // #3140 modified by ngx-extended-pdf-viewer\n  /**\n   * In book mode, dragging normally flips pages. Set this to false to disable\n   * drag-to-flip, allowing text selection and panning instead. Click-based\n   * page flipping is not affected. When true (the default), drag-to-flip is\n   * automatically disabled when zoomed in beyond 100% so the user can pan.\n   */\n  public enableFlipByDrag = input<boolean>(true);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _enableFlipByDragEffect = effect(() => {\n    const value = this.enableFlipByDrag();\n    if (this.initialized) {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      if (PDFViewerApplication?.pdfViewer) {\n        PDFViewerApplication.pdfViewer.enableFlipByDrag = value;\n      }\n    }\n  });\n  public showPageFlipButton = input<ResponsiveVisibility>(false);\n\n  public disablePageFlipButton = input<boolean>(false);\n\n  /**\n   * In book mode, show or hide the dog-ear fold animation on page corners\n   * when hovering near them. Only relevant when drag-to-flip is enabled.\n   */\n  public showPageCorners = input<boolean>(true);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _showPageCornersEffect = effect(() => {\n    const value = this.showPageCorners();\n    if (this.initialized) {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      if (PDFViewerApplication?.pdfViewer?.pageFlip) {\n        PDFViewerApplication.pdfViewer.pageFlip.setting.showPageCorners = value;\n      }\n    }\n  });\n  // #3140 end of modification by ngx-extended-pdf-viewer\n\n  public showSpreadButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disableSpreadButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showPropertiesButton = input<ResponsiveVisibility>(true);\n\n  // #2818 modified by ngx-extended-pdf-viewer\n  public disablePropertiesButton = input<boolean>(false);\n  // #2818 end of modification by ngx-extended-pdf-viewer\n\n  public showBorders = input(true);\n\n  public spread = model<SpreadType>('off');\n\n  public readingDirection = input<'ltr' | 'rtl' | 'auto'>('auto');\n\n  public thumbnailDrawn = output<PdfThumbnailDrawnEvent>();\n\n  public page: ModelSignal<number | undefined> = model();\n\n  // #3157 Guard flag to prevent the page effect from navigating\n  // when the page signal is updated by the 'pagechanging' event (i.e. user scrolling).\n  private _pageSetFromScroll = false;\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _pageEffect = effect(() => {\n    const newPageNumber = this.page();\n    if (newPageNumber) {\n      // silently cope with strings\n      this._page = Number(newPageNumber);\n    } else {\n      this._page = undefined;\n    }\n\n    // Don't navigate if this update came from scrolling\n    if (this._pageSetFromScroll) {\n      this._pageSetFromScroll = false;\n      return;\n    }\n\n    // Navigate to the page if PDF viewer is initialized\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (newPageNumber && PDFViewerApplication?.pdfViewer) {\n      PDFViewerApplication.page = Number(newPageNumber);\n    }\n  });\n\n  private _page: number | undefined = undefined;\n\n  public pageLabel = model<string | undefined>(undefined);\n\n  public pagesLoaded = output<PagesLoadedEvent>();\n\n  public pageRender = output<PageRenderEvent>();\n\n  public pageRendered = output<PageRenderedEvent>();\n\n  public pdfDownloaded = output<PdfDownloadedEvent>();\n\n  public pdfLoaded = output<PdfLoadedEvent>();\n\n  public pdfLoadingStarts = output<PdfLoadingStartsEvent>();\n\n  public pdfLoadingFailed = output<Error>();\n\n  public textLayer = input<boolean | undefined>(undefined);\n\n  public textLayerRendered = output<TextLayerRenderedEvent>();\n\n  public annotationEditorModeChanged = output<AnnotationEditorEditorModeChangedEvent>();\n\n  public updateFindMatchesCount = output<FindResultMatchesCount>();\n\n  public updateFindState = output<FindState>();\n\n  /** Legal values: undefined, 'auto', 'page-actual', 'page-fit', 'page-width', or '50' (or any other percentage) */\n  public zoom = model<ZoomType>(undefined);\n\n  /**\n   * Tracks the last zoom value set from a pdf.js scalechanging event.\n   * Used to break the feedback loop: pdf.js fires scalechanging → Angular updates zoom signal →\n   * effect calls setZoom() → sets currentScaleValue back on pdf.js. During pinch zoom,\n   * the async effect can set an outdated scale value back, causing flicker/jumping.\n   */\n  private _lastZoomSetByPdfJs: ZoomType | undefined;\n\n  /**\n   * True while pdf.js is actively handling a zoom gesture (pinch or Ctrl+wheel).\n   * During an active gesture, pdf.js uses drawingDelay=400ms to defer page re-rendering\n   * (the page stays blurry and only sharpens after the gesture ends). If Angular's\n   * setZoom() writes currentScaleValue during this window, it bypasses drawingDelay\n   * and triggers an immediate full re-render on every frame, causing stutter on iPad.\n   */\n  private _isPdfJsZooming = false;\n  private _pdfJsZoomingTimeout: ReturnType<typeof setTimeout> | undefined;\n\n  public zoomLevels = input<(string | number)[]>(['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 1, 1.25, 1.5, 2, 3, 4]);\n\n  public maxZoom = input(10);\n\n  public minZoom = input(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  public editorParamsToolbarTop: 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   * #3216 Per-instance \"openPDF() has completed\" flag. Set true in openPDF(), reset in\n   * ngOnDestroy(). Distinct from NgxExtendedPdfViewerService.ngxExtendedPdfViewerInitialized,\n   * which is a singleton flag preserved for backward compatibility — see that service for the\n   * distinction and the multi-viewer migration path.\n   */\n  private initialized = false;\n\n  public get pdfJsVersion(): string {\n    return getVersionSuffix(pdfDefaultOptions.assetsFolder);\n  }\n\n  public get majorMinorPdfJsVersion(): string {\n    const fullVersion = this.pdfJsVersion;\n    const pos = fullVersion.lastIndexOf('.');\n    return fullVersion.substring(0, pos).replace('.', '-');\n  }\n\n  public get enableSignatureEditor(): boolean {\n    return pdfDefaultOptions.enableSignatureEditor;\n  }\n\n  public get enablePageReordering(): boolean {\n    return this.enablePageReorderingInput() ?? pdfDefaultOptions.enablePageReordering;\n  }\n\n  public get enableSplitMerge(): boolean {\n    return this.enableSplitMergeInput() ?? pdfDefaultOptions.enableSplitMerge;\n  }\n\n  public get enableMerge(): boolean {\n    return this.enableMergeInput() ?? pdfDefaultOptions.enableMerge;\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  public mobileFriendlyZoom = input<string>('100%');\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _mobileFriendlyZoomEffect = effect(() => {\n    let zoom = this.mobileFriendlyZoom();\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    // Defer position recalculation until after Angular has rendered the\n    // new scale transform on the toolbar. Without this, getBoundingClientRect()\n    // returns the OLD toolbar height because the DOM hasn't updated yet.\n    requestAnimationFrame(() => {\n      this.calcViewerPositionTop();\n\n      // #2675 Recalculate responsive breakpoints so the toolbar buttons\n      // show/hide correctly for the new effective viewport width.\n      this.dynamicCSSComponent()?.updateToolbarWidth();\n\n      // Reposition any open popups (findbar, secondary toolbar, editor toolbars)\n      // so they move to the correct position after the zoom change.\n      const positioningService = new PositioningService();\n      positioningService.repositionOpenPopups();\n    });\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _zoomEffect = effect(() => {\n    const currentZoom = this.zoom(); // Track zoom signal\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    // Don't write back to pdf.js while it's actively handling a zoom gesture.\n    // pdf.js uses drawingDelay=400ms during pinch/wheel zoom to defer page\n    // re-rendering (pages stay blurry, then sharpen after the gesture ends).\n    // If we call setZoom() → currentScaleValue here, it bypasses drawingDelay\n    // and triggers an immediate full re-render on every frame, causing stutter.\n    if (this._isPdfJsZooming) {\n      return;\n    }\n\n    // Break the feedback loop: if this zoom value was set by a pdf.js scalechanging event,\n    // don't write it back to pdf.js. This prevents flicker/jumping during pinch zoom,\n    // where the async effect could set an outdated scale value back to pdf.js.\n    if (this._lastZoomSetByPdfJs !== undefined && currentZoom === this._lastZoomSetByPdfJs) {\n      this._lastZoomSetByPdfJs = undefined;\n      return;\n    }\n    this._lastZoomSetByPdfJs = undefined;\n\n    this.setZoom();\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _maxZoomEffect = effect(() => {\n    const maxZoom = this.maxZoom();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication.pdfViewer) {\n      PDFViewerApplication.pdfViewer.maxZoom = maxZoom;\n    }\n    if (PDFViewerApplication.toolbar) {\n      PDFViewerApplication.toolbar.maxZoom = maxZoom;\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _minZoomEffect = effect(() => {\n    const minZoom = this.minZoom();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication.pdfViewer) {\n      PDFViewerApplication.pdfViewer.minZoom = minZoom;\n    }\n    if (PDFViewerApplication.toolbar) {\n      PDFViewerApplication.toolbar.minZoom = minZoom;\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _findbarVisibleEffect = effect(() => {\n    const visible = this.findbarVisible();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (visible) {\n      // Only open if not already open (prevents circular dependency with findbaropen event)\n      if (!PDFViewerApplication.findBar.opened) {\n        PDFViewerApplication.findBar.open();\n      }\n    } else if (PDFViewerApplication.findBar.opened) {\n      // Only close if actually open\n      PDFViewerApplication.findBar.close();\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _propertiesDialogVisibleEffect = effect(() => {\n    const visible = this.propertiesDialogVisible();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (visible) {\n      // Only open if not already open (prevents circular dependency with propertiesdialogopen event)\n      if (PDFViewerApplication.overlayManager.active !== PDFViewerApplication.pdfDocumentProperties.dialog) {\n        PDFViewerApplication.pdfDocumentProperties.open();\n      }\n    } else if (PDFViewerApplication.overlayManager.active === PDFViewerApplication.pdfDocumentProperties.dialog) {\n      // Only close if actually open\n      PDFViewerApplication.pdfDocumentProperties.close();\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _pageLabelEffect = effect(() => {\n    const pageLabel = this.pageLabel();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (pageLabel) {\n      if (pageLabel !== PDFViewerApplication.pdfViewer.currentPageLabel) {\n        PDFViewerApplication.pdfViewer.currentPageLabel = pageLabel as string;\n      }\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _rotationEffect = effect(() => {\n    const rotation = this.rotation();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (rotation) {\n      const r = Number(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\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _activeSidebarViewEffect = effect(() => {\n    const activeSidebarView = this.activeSidebarView();\n    const sidebarVisible = this.sidebarVisible();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    // PDF.js v5.4.530 renamed pdfSidebar to viewsManager\n    if (sidebarVisible) {\n      PDFViewerApplication.viewsManager.open();\n      const view = Number(activeSidebarView);\n      if (view === 1 || view === 2 || view === 3 || view === 4) {\n        PDFViewerApplication.viewsManager.switchView(view, true);\n      } else {\n        console.error('[activeSidebarView] must be an integer value between 1 and 4');\n      }\n    } else {\n      PDFViewerApplication.viewsManager.close();\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _filenameForDownloadEffect = effect(() => {\n    const filename = this.filenameForDownload();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    PDFViewerApplication.appConfig.filenameForDownload = filename;\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _nameddestEffect = effect(() => {\n    const nameddest = this.nameddest();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (nameddest) {\n      PDFViewerApplication.pdfLinkService.goToDestination(nameddest);\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _spreadEffect = effect(() => {\n    const spread = this.spread();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (spread === 'even') {\n      PDFViewerApplication.spreadModeOnLoad = 2;\n      PDFViewerApplication.pdfViewer.spreadMode = 2;\n      this.onSpreadChange('even');\n    } else if (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    this.hideToolbarIfItIsEmpty();\n    setTimeout(this.asyncWithCD(() => this.calcViewerPositionTop()));\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _secondaryMenuEmptyEffect = effect(() => {\n    this.service.secondaryMenuIsEmpty();\n    this.hideToolbarIfItIsEmpty();\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _enableDragAndDropEffect = effect(() => {\n    const enableDragAndDrop = this.enableDragAndDrop();\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    PDFViewerApplicationOptions.set('enableDragAndDrop', enableDragAndDrop);\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _printResolutionEffect = effect(() => {\n    const printResolution = this.printResolution();\n    if (typeof window === 'undefined') return;\n    if (printResolution === null || printResolution === undefined) return;\n\n    const PDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    if (PDFViewerApplicationOptions) {\n      PDFViewerApplicationOptions.set('printResolution', printResolution);\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _keyboardSettingsEffect = effect(() => {\n    void this.ignoreKeyboard(); // NOSONAR — void tracks signal dependency\n    void this.ignoreKeys(); // NOSONAR\n    void this.acceptKeys(); // NOSONAR\n    if (typeof window === 'undefined') return;\n\n    const PDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n    if (PDFViewerApplicationOptions) {\n      this.overrideDefaultSettings();\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _replaceBrowserPrintEffect = effect(() => {\n    const replaceBrowserPrint = this.replaceBrowserPrint();\n    if (typeof window === 'undefined') return;\n\n    this.doReplaceBrowserPrint(replaceBrowserPrint);\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _disableFormsEffect = effect(() => {\n    void this.disableForms(); // NOSONAR — void tracks signal dependency\n    if (typeof window === 'undefined') return;\n\n    this.enableOrDisableForms(this.elementRef.nativeElement, false);\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _showBordersEffect = effect(() => {\n    const showBorders = this.showBorders();\n    if (typeof window === 'undefined') return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    const PDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n\n    if (PDFViewerApplicationOptions) {\n      this.overrideDefaultSettings();\n      const viewer = document.getElementById('viewer') as HTMLElement;\n      if (viewer) {\n        if (showBorders) {\n          viewer.classList.remove('removePageBorders');\n        } else {\n          viewer.classList.add('removePageBorders');\n        }\n\n        if (PDFViewerApplication.pdfViewer) {\n          PDFViewerApplication.pdfViewer.removePageBorders = !showBorders;\n        }\n        if (PDFViewerApplication.pdfViewer?.currentScale) {\n          const zoomEvent = {\n            source: viewer,\n            scale: PDFViewerApplication.pdfViewer.currentScale,\n            presetValue: PDFViewerApplication.pdfViewer.currentScaleValue,\n          } as ScaleChangingEvent;\n          PDFViewerApplication.eventBus?.dispatch('scalechanging', zoomEvent);\n        }\n      }\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _showUnverifiedSignaturesEffect = effect(() => {\n    // #1321 modified by ngx-extended-pdf-viewer\n    // showUnverifiedSignatures is an InputSignal — must be invoked so the\n    // effect tracks the signal and the worker receives a plain boolean\n    // (passing the signal function tripped the structured-clone algorithm\n    // with \"Function object could not be cloned\").\n    const showUnverifiedSignatures = this.showUnverifiedSignatures();\n    // #1321 end of modification by ngx-extended-pdf-viewer\n    if (typeof window === 'undefined') return;\n    if (!this.initialized) return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication?.pdfDocument) {\n      PDFViewerApplication.pdfDocument._transport.messageHandler.send('showUnverifiedSignatures', showUnverifiedSignatures);\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private readonly _enablePrintEffect = effect(() => {\n    const enablePrint = this.enablePrint();\n    if (typeof window === 'undefined') return;\n\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication) {\n      PDFViewerApplication.enablePrint = enablePrint;\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _customComponentsEffect = effect(() => {\n    // #3242 modified by ngx-extended-pdf-viewer\n    // read the custom template signals so the effect re-runs whenever one of\n    // them changes. Calling them is what registers the dependency - reading the\n    // property alone yields the signal function and tracks nothing. The return\n    // values are deliberately unused.\n    this.customFindbar();\n    this.customFindbarButtons();\n    this.customFindbarInputArea();\n    this.customToolbar();\n    // #3242 end of modification by ngx-extended-pdf-viewer\n    if (typeof window === 'undefined') return;\n\n    this.dummyComponents()?.addMissingStandardWidgets();\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    this.editorParamsToolbarTop = (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    this.cdr.markForCheck();\n  }\n\n  constructor(\n    @Inject(PLATFORM_ID) private readonly platformId: Object,\n    private readonly notificationService: PDFNotificationService,\n    private readonly elementRef: ElementRef,\n    private readonly platformLocation: PlatformLocation,\n    public cdr: ChangeDetectorRef,\n    public service: NgxExtendedPdfViewerService,\n    private readonly renderer: Renderer2,\n    private readonly pdfScriptLoaderService: PDFScriptLoaderService,\n    private readonly keyboardManager: NgxKeyboardManagerService,\n    private readonly cspPolicyService: PdfCspPolicyService,\n    private readonly iosCanvasService: IOSCanvasOptimizationService,\n    private readonly ngZone: NgZone,\n  ) {\n    this.baseHref = this.platformLocation.getBaseHrefFromDOM();\n    if (isPlatformBrowser(this.platformId)) {\n      this.serverSideRendering = false;\n      this.toolbarWidth = String(document.body.clientWidth);\n    }\n  }\n\n  /**\n   * Detects if the application is running in zoneless mode (Angular 21+)\n   * @returns true if zone.js is not present\n   */\n  private isZoneless(): boolean {\n    const Zone = (globalThis as any).Zone;\n    return typeof Zone === 'undefined' || !Zone?.current;\n  }\n\n  /**\n   * Wraps an async callback to ensure change detection in zoneless mode.\n   * In zone.js mode: Zero overhead - Zone handles change detection automatically\n   * In zoneless mode: Manually triggers change detection after callback\n   *\n   * @param callback The function to execute\n   * @returns Wrapped function that triggers CD in zoneless mode\n   *\n   * @example\n   * // Instead of:\n   * queueMicrotask(() => this.progress.emit(x));\n   *\n   * // Use:\n   * queueMicrotask(this.asyncWithCD(() => this.progress.emit(x)));\n   */\n  private asyncWithCD(callback: () => void): () => void {\n    return () => {\n      callback();\n      if (this.isZoneless()) {\n        this.cdr.detectChanges();\n      }\n    };\n  }\n  // #TODO End of zoneless support\n\n  private reportSourceChanges(change: { sourcefile: string }): void {\n    this._src = change.sourcefile;\n    this.srcChangeTriggeredByUser = true;\n    this.src.set(change.sourcefile);\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (this.filenameForDownload()) {\n      PDFViewerApplication.appConfig.filenameForDownload = this.filenameForDownload();\n    } else {\n      PDFViewerApplication.appConfig.filenameForDownload = this.guessFilenameFromUrl(this._src);\n    }\n  }\n\n  private handleStoredValuesAvailable(event: any): void {\n    // Only apply stored values if developer hasn't explicitly set zoom/page\n\n    // Apply stored zoom if zoom is not explicitly set by developer\n    if (this.zoom() === undefined && event.storedZoom !== undefined) {\n      this.zoom.set(event.storedZoom as ZoomType);\n    }\n\n    // Apply stored page if page is not explicitly set by developer\n    if (this._page === undefined && event.storedPage !== undefined) {\n      this._page = event.storedPage;\n    }\n  }\n\n  public ngOnInit() {\n    this.hideToolbarIfItIsEmpty();\n    if (isPlatformBrowser(this.platformId)) {\n      this.ngZone.runOutsideAngular(() => {\n        this.initializationPromise = this.initialize;\n        this.initializationPromise();\n      });\n    }\n  }\n\n  private async initialize(): Promise<void> {\n    try {\n      await this.waitForRootElement();\n\n      if (this.destroyInitialization) return;\n\n      if (isPlatformBrowser(this.platformId)) {\n        this.addTranslationsUnlessProvidedByTheUser();\n        await this.waitUntilOldComponentIsGone();\n        if (this.destroyInitialization) return;\n\n        await this.pdfScriptLoaderService.ensurePdfJsHasBeenLoaded(this.useInlineScripts(), this.forceUsingLegacyES5(), this.forceFullReloadOfJavaScriptCode());\n        if (this.destroyInitialization) return;\n\n        if (this.formSupport) {\n          this.formSupport.registerFormSupportWithPdfjs(this.pdfScriptLoaderService.PDFViewerApplication);\n          this.keyboardManager.registerKeyboardListener(this.pdfScriptLoaderService.PDFViewerApplication);\n          this.formSupport.ngZone = this.ngZone;\n          this.formSupport.cdr = this.cdr;\n        }\n        this.pdfScriptLoaderService.PDFViewerApplication.cspPolicyService = this.cspPolicyService;\n\n        // Initialize iOS canvas optimization service with PDFViewerApplication\n        this.iosCanvasService.initialize(this.pdfScriptLoaderService.PDFViewerApplication);\n\n        this.ngZone.runOutsideAngular(() => this.doInitPDFViewer());\n      }\n    } catch (error) {\n      console.error('Initialization failed:', error);\n    }\n  }\n\n  private async waitForRootElement(): Promise<void> {\n    return new Promise<void>((resolve, reject) => {\n      const checkRootElement = () => {\n        if (this.destroyInitialization) {\n          reject(new Error('Component destroyed'));\n          return;\n        }\n\n        // #2853 modified by ngx-extended-pdf-viewer\n        // When [customPdfViewer] is used, the #root template ref may not resolve\n        // because viewChild can't see refs in externally-defined templates.\n        // Fall back to finding the .zoom element by class as a workaround.\n        const rootEl = this.root()?.nativeElement || this.elementRef?.nativeElement?.querySelector('.zoom');\n        if (rootEl?.offsetParent) {\n          resolve();\n        } else {\n          this.checkRootElementTimeout = setTimeout(this.asyncWithCD(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.initialized) {\n          clearInterval(interval);\n          resolve();\n        }\n      }, 10);\n    });\n  }\n\n  private assignTabindexes() {\n    // #3242 modified by ngx-extended-pdf-viewer\n    // only assign tab indexes if the user asked for it. Note that 0 is a valid\n    // start index, so this must not be a plain truthiness check\n    if (this.startTabindex() !== undefined) {\n      // #3242 end of modification by ngx-extended-pdf-viewer\n      // #2853 modified by ngx-extended-pdf-viewer\n      const rootEl = this.root()?.nativeElement || this.elementRef?.nativeElement?.querySelector('.zoom');\n      if (!rootEl) {\n        return;\n      }\n      const r = rootEl.cloneNode(true) as HTMLElement;\n      // #2853 end of modification by ngx-extended-pdf-viewer\n      r.classList.add('offscreen');\n      this.showElementsRecursively(r);\n      document.body.appendChild(r);\n      const elements = this.collectElementPositions(r, rootEl, []);\n      r.remove();\n      const topRightGreaterThanBottomLeftComparator = (a: any, b: any) => {\n        if (a.y - b.y > 15) {\n          return 1;\n        }\n        if (b.y - a.y > 15) {\n          return -1;\n        }\n        return a.x - b.x;\n      };\n      const sorted = [...elements].sort(topRightGreaterThanBottomLeftComparator);\n\n      // #3074 modified by ngx-extended-pdf-viewer\n      // Assign tab indexes, inserting popup elements immediately after their trigger buttons\n      let tabIndex = this.startTabindex() ?? 0;\n      for (let i = 0; i < sorted.length; i++) {\n        sorted[i].element.tabIndex = tabIndex++;\n\n        // If this element controls a popup, assign tab indexes to popup elements next\n        if (sorted[i].popupElements && sorted[i].popupElements!.length > 0) {\n          for (const popupElement of sorted[i].popupElements!) {\n            popupElement.tabIndex = tabIndex++;\n          }\n        }\n      }\n      // #3074 end of modification by ngx-extended-pdf-viewer\n    }\n  }\n\n  private showElementsRecursively(root: Element): void {\n    const classesToRemove = [\n      'hidden',\n      'invisible',\n      'hiddenXXLView',\n      'hiddenXLView',\n      'hiddenLargeView',\n      'hiddenMediumView',\n      'hiddenSmallView',\n      'hiddenTinyView',\n      'visibleXXLView',\n      'visibleXLView',\n      'visibleLargeView',\n      'visibleMediumView',\n      'visibleSmallView',\n      'visibleTinyView',\n    ];\n\n    root.classList.remove(...classesToRemove);\n\n    if (root instanceof HTMLButtonElement || root instanceof HTMLAnchorElement || root instanceof HTMLInputElement || root instanceof HTMLSelectElement) {\n      return;\n    } else if (root.childElementCount > 0) {\n      for (let i = 0; i < root.childElementCount; i++) {\n        const c = root.children.item(i);\n        if (c) {\n          this.showElementsRecursively(c);\n        }\n      }\n    }\n  }\n\n  private collectElementPositions(copy: Element, original: Element, elements: Array<ElementAndPosition>): Array<ElementAndPosition> {\n    // #3074 modified by ngx-extended-pdf-viewer\n    // Skip elements inside editor params toolbars - they'll be collected via aria-controls\n    if (copy.classList.contains('editorParamsToolbar')) {\n      return elements;\n    }\n    // #3074 end of modification by ngx-extended-pdf-viewer\n\n    if (copy instanceof HTMLButtonElement || copy instanceof HTMLAnchorElement || copy instanceof HTMLInputElement || copy instanceof HTMLSelectElement) {\n      const rect = copy.getBoundingClientRect();\n      const elementAndPos = {\n        element: original,\n        x: Math.round(rect.left),\n        y: Math.round(rect.top),\n      } as ElementAndPosition;\n\n      // #3074 modified by ngx-extended-pdf-viewer\n      // If this element controls a popup (aria-controls), collect popup elements\n      const ariaControls = (original as HTMLElement).getAttribute('aria-controls');\n      if (ariaControls) {\n        const popupElements = this.collectPopupElements(ariaControls);\n        if (popupElements.length > 0) {\n          elementAndPos.popupElements = popupElements;\n        }\n      }\n      // #3074 end of modification by ngx-extended-pdf-viewer\n\n      elements.push(elementAndPos);\n    } else if (copy.childElementCount > 0) {\n      for (let i = 0; i < copy.childElementCount; i++) {\n        const c = copy.children.item(i);\n        const o = original.children.item(i);\n        if (c && o) {\n          elements = this.collectElementPositions(c, o, elements);\n        }\n      }\n    }\n    return elements;\n  }\n\n  // #3074 modified by ngx-extended-pdf-viewer\n  /**\n   * Collect focusable elements from a popup identified by aria-controls ID\n   * These elements should appear in tab order immediately after the trigger button\n   */\n  private collectPopupElements(ariaControls: string): Array<HTMLElement> {\n    const popup = this.root()?.nativeElement.querySelector(`#${ariaControls}`);\n    if (!popup) {\n      return [];\n    }\n\n    const selector = 'button:not([tabindex=\"-1\"]), a:not([tabindex=\"-1\"]), input:not([tabindex=\"-1\"]), select:not([tabindex=\"-1\"])';\n    const focusableElements = popup.querySelectorAll(selector);\n    const elementsArray = Array.from(focusableElements) as Array<HTMLElement>;\n    return elementsArray;\n  }\n  // #3074 end of modification by ngx-extended-pdf-viewer\n\n  private readonly afterPrintListener = () => {\n    this.afterPrint.emit();\n  };\n\n  private readonly beforePrintListener = () => {\n    this.beforePrint.emit();\n  };\n\n  private guessFilenameFromUrl(src: unknown): string | undefined {\n    if (src && typeof src === 'string') {\n      const slash = src.lastIndexOf('/');\n      if (slash > 0) {\n        return src.substring(slash + 1);\n      } else {\n        return src;\n      }\n    }\n    return undefined;\n  }\n\n  private doInitPDFViewer() {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return;\n    }\n\n    if (this.initialized) {\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          this.asyncWithCD(() => {\n            onLoaded();\n          }),\n          10,\n        );\n      } else {\n        this.localizationInitialized = true;\n        if (!this.destroyInitialization) {\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    // #2984 modified by ngx-extended-pdf-viewer\n    // Wait for Angular to render critical DOM elements before initializing PDF.js\n    // This ensures viewsManager and thumbnailView are available when webViewerLoad() executes\n    const waitForDOMElements = (callback: () => void, maxAttempts = 50, delay = 10) => {\n      let attempts = 0;\n      const checkElements = () => {\n        const thumbnailsView = document.getElementById('thumbnailsView');\n        const viewsManagerContent = document.getElementById('viewsManagerContent');\n\n        if (thumbnailsView && viewsManagerContent) {\n          // Elements are ready, proceed with initialization\n          callback();\n        } else if (attempts < maxAttempts) {\n          // Elements not ready yet, try again\n          attempts++;\n          setTimeout(checkElements, delay);\n        } else {\n          // Max attempts reached, proceed anyway (fallback)\n          console.warn('ngx-extended-pdf-viewer: DOM elements not ready after', maxAttempts * delay, 'ms. Proceeding with initialization anyway.');\n          callback();\n        }\n      };\n      checkElements();\n    };\n\n    waitForDOMElements(\n      this.asyncWithCD(() => {\n        if (!this.destroyInitialization) {\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          // #2853 modified by ngx-extended-pdf-viewer\n          // When [customPdfViewer] is used, viewChild can't find the component\n          // in externally-defined templates. Fall back to finding it via the DOM.\n          const dummy = this.dummyComponents();\n          if (dummy) {\n            dummy.addMissingStandardWidgets();\n          } else {\n            PdfDummyComponentsComponent.addMissingStandardWidgetsStatic();\n          }\n          // #2853 end of modification by ngx-extended-pdf-viewer\n          if (this.pdfScriptLoaderService.PDFViewerApplicationOptions) {\n            const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n            (globalThis as any).PDFViewerApplicationOptions = PDFViewerApplicationOptions;\n          }\n\n          this.pdfScriptLoaderService.webViewerLoad(this.cspPolicyService);\n\n          const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n          PDFViewerApplication.appConfig.defaultUrl = ''; // IE bugfix\n          const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n\n          PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop());\n          PDFViewerApplicationOptions.set('localeProperties', { lang: this.language() });\n          PDFViewerApplicationOptions.set('imageResourcesPath', this.imageResourcesPath());\n          PDFViewerApplicationOptions.set('minZoom', this.minZoom());\n          PDFViewerApplicationOptions.set('maxZoom', this.maxZoom());\n          PDFViewerApplicationOptions.set('pageViewMode', this.pageViewMode());\n          PDFViewerApplicationOptions.set('verbosity', this.logLevel());\n          PDFViewerApplicationOptions.set('pdfBackgroundColor', this.pdfBackgroundColor());\n          // The supportsDownloading option was introduced in pdf.js 6.1; gate on\n          // the engine version (not the bleeding-edge flag, which is a moving\n          // target) so it also applies once stable reaches 6.1.\n          if (isPdfjsVersionAtLeast(6, 1)) {\n            PDFViewerApplicationOptions.set('supportsDownloading', this.supportsDownloading());\n          }\n          // #3115 modified by ngx-extended-pdf-viewer\n          // Apply color-scheme to the viewer host element instead of letting\n          // PDF.js write it to document.documentElement, which would override\n          // the host application's color-scheme (e.g. break Angular Material).\n          // color-scheme is inherited, so descendants of the host pick it up.\n          const hostElement = this.elementRef.nativeElement as HTMLElement;\n          if (this.theme() === 'dark') {\n            hostElement.style.colorScheme = 'dark';\n          } else if (this.theme() === 'light') {\n            hostElement.style.colorScheme = 'light';\n          } else {\n            hostElement.style.removeProperty('color-scheme');\n          }\n          // #3115 end of modification by ngx-extended-pdf-viewer\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?.id === 'printContainer') {\n                e.remove();\n              }\n            }\n          }\n          const pc = document.getElementById('printContainer');\n          if (pc) {\n            document.getElementsByTagName('body')[0].appendChild(pc);\n          }\n        }\n      }),\n    );\n    // #2984 end of modification by ngx-extended-pdf-viewer\n  }\n\n  private addTranslationsUnlessProvidedByTheUser() {\n    const link = this.renderer.createElement('link');\n    link.rel = 'resource';\n    link.type = 'application/l10n';\n    link.href = this.localeFolderPath() + '/locale.json';\n\n    link.setAttribute('origin', 'ngx-extended-pdf-viewer');\n    this.renderer.appendChild(this.elementRef.nativeElement, link);\n  }\n\n  private hideToolbarIfItIsEmpty() {\n    this.primaryMenuVisible = this.showToolbar();\n    if (!this.showSecondaryToolbarButton() || this.service.secondaryMenuIsEmpty()) {\n      if (!this.isPrimaryMenuVisible()) {\n        this.primaryMenuVisible = false;\n      }\n    }\n  }\n\n  /** Notifies every widget that implements onLibraryInit() that the PDF viewer objects are available */\n  private afterLibraryInit() {\n    // Store the original color-scheme value before PDF.js might change it\n    if (typeof window !== 'undefined' && typeof document !== 'undefined' && this.originalColorScheme === null) {\n      const docStyle = document.documentElement.style;\n      this.originalColorScheme = docStyle.getPropertyValue('color-scheme') || '';\n    }\n\n    queueMicrotask(this.asyncWithCD(() => this.notificationService.onPDFJSInitSignal.set(this.pdfScriptLoaderService.PDFViewerApplication)));\n  }\n\n  public onSpreadChange(newSpread: 'off' | 'even' | 'odd'): void {\n    this.spread.set(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        if (this.showFindButton() === undefined) {\n          setTimeout(\n            this.asyncWithCD(() => {\n              this.toggleVisibility('viewFind');\n              this.toggleVisibility('findbar');\n            }),\n          );\n        }\n      } else {\n        setTextLayerMode(this.showHandToolButton() ? pdfDefaultOptions.textLayerMode : 0);\n\n        if (!this.showHandToolButton()) {\n          if (this.showFindButton() || this.showFindButton() === undefined) {\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            }\n          }\n        }\n      }\n    } else {\n      setTextLayerMode(pdfDefaultOptions.textLayerMode);\n      if (this.showFindButton() === undefined) {\n        setTimeout(\n          this.asyncWithCD(() => {\n            this.toggleVisibility('viewFind');\n            this.toggleVisibility('findbar');\n          }),\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 = new Set([\n      'needsES5',\n      'rangeChunkSize',\n      '_internalFilenameSuffix',\n      'assetsFolder',\n      'doubleTapZoomFactor',\n      'doubleTapZoomsInHandMode',\n      'doubleTapZoomsInTextSelectionMode',\n      'doubleTapResetsZoomOnSecondDoubleTap',\n    ]);\n    // Apply component inputs to pdfDefaultOptions before passing to AppOptions\n    const enablePageReorderingInput = this.enablePageReorderingInput();\n    if (enablePageReorderingInput !== undefined) {\n      pdfDefaultOptions.enablePageReordering = enablePageReorderingInput;\n    }\n    const enableSplitMergeInput = this.enableSplitMergeInput();\n    if (enableSplitMergeInput !== undefined) {\n      pdfDefaultOptions.enableSplitMerge = enableSplitMergeInput;\n    }\n    const enableMergeInput = this.enableMergeInput();\n    if (enableMergeInput !== undefined) {\n      pdfDefaultOptions.enableMerge = enableMergeInput;\n    }\n\n    for (const key in pdfDefaultOptions) {\n      if (!optionsToIgnore.has(key)) {\n        const option = (pdfDefaultOptions as any)[key];\n        if (key !== 'findController' && typeof option === 'function') {\n          options.set(key, option());\n        } else {\n          options.set(key, (pdfDefaultOptions as any)[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    options.set('readingDirection', this.readingDirection());\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.initialized = true;\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(\n        this.asyncWithCD(async () => this.dynamicCSSComponent()?.checkHeight(this, this.logLevel())),\n        100,\n      );\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 as any)['range']) {\n          options.range = (this._src as any)['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          // #3131 Clone the buffer so the original survives pdf.js transferring it to the worker thread.\n          options.data = this._src.slice(0);\n        } else if (this._src instanceof Uint8Array) {\n          // #3131 Clone the buffer so the original survives pdf.js transferring it to the worker thread.\n          options.data = new Uint8Array(this._src);\n        }\n        options.rangeChunkSize = pdfDefaultOptions.rangeChunkSize;\n        options.cspPolicyService = this.cspPolicyService;\n        PDFViewerApplication.findBar?.close();\n        PDFViewerApplication.secondaryToolbar?.close();\n        // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n        PDFViewerApplication.eventBus?.dispatch('annotationeditormodechanged', { mode: 0 });\n\n        this._lastOpenedSrc = this._src; // #3131\n        await PDFViewerApplication.open(options);\n        this.pdfLoadingStarts.emit({});\n        // #3131 Set zoom synchronously (awaited) instead of via setTimeout to avoid\n        // a timing window where the zoom change could cancel in-progress first page rendering.\n        await this.setZoom();\n      }\n      setTimeout(\n        this.asyncWithCD(() => {\n          if (!this.destroyInitialization) {\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        }),\n        100,\n      );\n    }\n  }\n\n  private registerEventListeners(PDFViewerApplication: IPDFViewerApplication) {\n    // #3131 Use AbortController to unregister all listeners on destroy in one call.\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const { signal } = this.eventBusAbortController;\n    const opts = { signal };\n\n    PDFViewerApplication.eventBus.on('sourcechanged', this.reportSourceChanges.bind(this), opts);\n    PDFViewerApplication.eventBus.on('afterprint', this.afterPrintListener, opts);\n    PDFViewerApplication.eventBus.on('beforeprint', this.beforePrintListener, opts);\n\n    PDFViewerApplication.eventBus.on(\n      'annotation-editor-event',\n      (x: AnnotationEditorEvent) => {\n        // #3225 added by ngx-extended-pdf-viewer\n        // Surface the stable, developer-supplied id (if any) on every event by\n        // reading it from the live editor (x.source). pdf.js dispatches dozens\n        // of these events; reading it here keeps the customId current without\n        // patching each individual dispatch site in the fork.\n        if (x?.customId === undefined && x?.source?.customId != null) {\n          x.customId = x.source.customId;\n        }\n        // #3225 end of modification by ngx-extended-pdf-viewer\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            if (this.destroyInitialization) return;\n            this.annotationEditorEvent.emit(x);\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'toggleSidebar',\n      (x: ToggleSidebarEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.sidebarVisible.set(x.visible);\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'textlayerrendered',\n      (x: TextLayerRenderedEvent) => {\n        queueMicrotask(this.asyncWithCD(() => this.textLayerRendered.emit(x)));\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'annotationeditormodechanged',\n      (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(\n          this.asyncWithCD(() => {\n            if (this.destroyInitialization) return;\n            this.annotationEditorModeChanged.emit(x);\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'scrollmodechanged',\n      (x: ScrollModeChangedEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.scrollMode.set(x.mode);\n            if (x.mode === ScrollModeType.page) {\n              if (this.pageViewMode() !== 'single') {\n                this.pageViewMode.set('single');\n              }\n            }\n          }),\n        );\n      },\n      opts,\n    );\n    // #2673 Listen for pageViewMode changes to restore height when leaving infinite-scroll\n    PDFViewerApplication.eventBus.on(\n      'pageviewmodechanged',\n      (x: any) => {\n        if (x.mode === 'single') {\n          // Restore height after switching away from infinite-scroll\n          setTimeout(\n            this.asyncWithCD(() => {\n              this.dynamicCSSComponent()?.removeScrollbarInInfiniteScrollMode(true, this.pageViewMode(), this.primaryMenuVisible, this, this.logLevel());\n            }),\n          );\n        }\n      },\n      opts,\n    );\n    // #2673 end of modification\n    PDFViewerApplication.eventBus.on(\n      'progress',\n      (x: ProgressBarEvent) => {\n        queueMicrotask(this.asyncWithCD(() => this.progress.emit(x)));\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'findbarclose',\n      () => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.findbarVisible.set(false);\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'findbaropen',\n      () => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.findbarVisible.set(true);\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'propertiesdialogclose',\n      () => {\n        this.propertiesDialogVisible.set(false);\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'propertiesdialogopen',\n      () => {\n        this.propertiesDialogVisible.set(true);\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'pagesloaded',\n      (x: PagesLoadedEvent) => {\n        queueMicrotask(this.asyncWithCD(() => 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          this.asyncWithCD(() => {\n            if (!this.destroyInitialization) {\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        );\n        this.setZoom();\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'pagerendered',\n      (x: PageRenderedEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.pageRendered.emit(x);\n            this.dynamicCSSComponent()?.removeScrollbarInInfiniteScrollMode(false, this.pageViewMode(), this.primaryMenuVisible, this, this.logLevel());\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'pagerender',\n      (x: PageRenderEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.pageRender.emit(x);\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'download',\n      (x: PdfDownloadedEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.pdfDownloaded.emit(x);\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'scalechanging',\n      (x: ScaleChangingEvent) => {\n        // Mark that pdf.js is actively zooming (pinch or Ctrl+wheel). While this\n        // flag is set, the _zoomEffect skips calling setZoom() to avoid triggering\n        // immediate re-renders that bypass pdf.js's drawingDelay (400ms). The flag\n        // is cleared 500ms after the last scalechanging event — slightly longer than\n        // drawingDelay so that pdf.js finishes its deferred render first.\n        this._isPdfJsZooming = true;\n        clearTimeout(this._pdfJsZoomingTimeout);\n        this._pdfJsZoomingTimeout = setTimeout(() => {\n          this._isPdfJsZooming = false;\n        }, 500);\n\n        setTimeout(\n          this.asyncWithCD(() => {\n            if (this.destroyInitialization) return;\n            // Round to 4 decimal places (0.01% precision) to avoid floating-point artifacts\n            // This precision is sufficient even for theoretical 80K displays and far exceeds human visual acuity\n            const roundedScale = Math.round(x.scale * 10000) / 10000;\n            this.currentZoomFactor.emit(roundedScale);\n          }),\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            const newZoom = Math.round(x.scale * 100_000) / 1000;\n            this._lastZoomSetByPdfJs = newZoom;\n            this.zoom.set(newZoom);\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._lastZoomSetByPdfJs = x.presetValue;\n          this.zoom.set(x.presetValue);\n        }\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'rotationchanging',\n      (x: PagesRotationEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.rotation.set(x.pagesRotation as 0 | 90 | 180 | 270);\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'fileinputchange',\n      (x: FileInputChanged) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            if (x.fileInput.files && x.fileInput.files.length >= 1) {\n              // drag and drop\n              this.srcChangeTriggeredByUser = true;\n              this.src.set(x.fileInput.files[0].name);\n            } else {\n              // regular file open dialog\n              const path = x.fileInput?.value?.replace('C:\\\\fakepath\\\\', '');\n              this.src.set(path);\n            }\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'cursortoolchanged',\n      (x: HandtoolChanged) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.handTool.set(x.tool === PdfCursorTools.HAND);\n            // #3140 modified by ngx-extended-pdf-viewer\n            // When the page-flip button is shown, the cursor tool controls enableFlipByDrag:\n            // PAGE_FLIP mode enables drag-to-flip, other modes disable it.\n            // When the button is not shown, enableFlipByDrag is controlled by the [enableFlipByDrag] input.\n            if (this.showPageFlipButton() && PDFViewerApplication?.pdfViewer) {\n              PDFViewerApplication.pdfViewer.enableFlipByDrag = x.tool === PdfCursorTools.PAGE_FLIP;\n            }\n            // #3140 end of modification by ngx-extended-pdf-viewer\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'sidebarviewchanged',\n      (x: SidebarviewChange) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.sidebarVisible.set(x.view > 0);\n            if (x.view > 0) {\n              this.activeSidebarView.set(x.view);\n            }\n            this.sidebarComponent()?.showToolbarWhenNecessary();\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'storedvaluesavailable',\n      (event) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            this.handleStoredValuesAvailable(event);\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'documentloaded',\n      (pdfLoadedEvent: PdfDocumentLoadedEvent) => {\n        queueMicrotask(\n          this.asyncWithCD(async () => {\n            const pages = pdfLoadedEvent.source.pagesCount;\n            this.pageLabel.set(undefined);\n            if (this.page() && this.page()! >= pages) {\n              this.page.set(pages);\n            }\n            this.scrollSignatureWarningIntoView(pdfLoadedEvent.source.pdfDocument);\n            this.pdfLoaded.emit({ pagesCount: pdfLoadedEvent.source.pdfDocument?.numPages } as PdfLoadedEvent);\n            if (this.findbarVisible()) {\n              PDFViewerApplication.findBar.open();\n            }\n            if (this.propertiesDialogVisible()) {\n              PDFViewerApplication.pdfDocumentProperties.open();\n            }\n            this.hasTextLayer = this.textLayer() === true;\n\n            // #2691 modified by ngx-extended-pdf-viewer\n            // If initial form data was provided, update the baseline for change detection\n            // after the document is loaded and form fields are initialized\n            if (this.initialAngularFormData && PDFViewerApplication.setInitialAnnotationValues) {\n              setTimeout(\n                this.asyncWithCD(() => {\n                  PDFViewerApplication.setInitialAnnotationValues?.();\n                }),\n                200,\n              ); // Allow time for form fields to be rendered and initialized\n            }\n            // #2691 end of modification by ngx-extended-pdf-viewer\n          }),\n        );\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'spreadmodechanged',\n      (event) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            const modes = ['off', 'odd', 'even'] as Array<SpreadType>;\n            this.spread.set(modes[event.mode]);\n          }),\n        );\n      },\n      opts,\n    );\n\n    const hideSidebarToolbar = () => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.sidebarComponent()?.showToolbarWhenNecessary();\n        }),\n      );\n    };\n\n    PDFViewerApplication.eventBus.on('outlineloaded', hideSidebarToolbar, opts);\n\n    PDFViewerApplication.eventBus.on('attachmentsloaded', hideSidebarToolbar, opts);\n\n    PDFViewerApplication.eventBus.on('layersloaded', hideSidebarToolbar, opts);\n\n    PDFViewerApplication.eventBus.on(\n      'annotationlayerrendered',\n      (event: AnnotationLayerRenderedEvent) => {\n        const div = event.source.div;\n        queueMicrotask(\n          this.asyncWithCD(() => {\n            // #3131 formSupport can be undefined if the component was destroyed before this microtask runs\n            if (!this.formSupport) {\n              return;\n            }\n            event.initialFormDataStoredInThePDF = this.formSupport.initialFormDataStoredInThePDF;\n            this.annotationLayerRendered.emit(event);\n            this.enableOrDisableForms(div, true);\n          }),\n        );\n      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'linkannotationsadded',\n      (event: LinkAnnotationsAddedEvent) => queueMicrotask(this.asyncWithCD(() => this.linkAnnotationsAdded.emit(event))),\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'annotationeditorlayerrendered',\n      (event) => queueMicrotask(this.asyncWithCD(() => this.annotationEditorLayerRendered.emit(event))),\n      opts,\n    );\n    PDFViewerApplication.eventBus.on('xfalayerrendered', (event) => queueMicrotask(this.asyncWithCD(() => this.xfaLayerRendered.emit(event))), opts);\n    PDFViewerApplication.eventBus.on('outlineloaded', (event) => queueMicrotask(this.asyncWithCD(() => this.outlineLoaded.emit(event))), opts);\n    PDFViewerApplication.eventBus.on('attachmentsloaded', (event) => queueMicrotask(this.asyncWithCD(() => this.attachmentsloaded.emit(event))), opts);\n    PDFViewerApplication.eventBus.on('layersloaded', (event) => queueMicrotask(this.asyncWithCD(() => this.layersloaded.emit(event))), opts);\n    PDFViewerApplication.eventBus.on(\n      'presentationmodechanged',\n      () => {\n        const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n        PDFViewerApplication?.pdfViewer?.destroyBookMode();\n      },\n      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'updatefindcontrolstate',\n      (x: FindResult) => {\n        queueMicrotask(\n          this.asyncWithCD(() => {\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      },\n      opts,\n    );\n    PDFViewerApplication.eventBus.on(\n      'updatefindmatchescount',\n      (x: FindResult) => {\n        x.matchesCount.matches = PDFViewerApplication.findController._pageMatches ?? [];\n        x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength ?? [];\n        queueMicrotask(\n          this.asyncWithCD(() =>\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      opts,\n    );\n\n    PDFViewerApplication.eventBus.on(\n      'pagechanging',\n      () => {\n        if (!this.destroyInitialization) {\n          // hurried users sometimes reload the PDF before it has finished initializing\n          queueMicrotask(\n            this.asyncWithCD(() => {\n              const currentPage = PDFViewerApplication.pdfViewer.currentPageNumber;\n              const currentPageLabel = PDFViewerApplication.pdfViewer.currentPageLabel;\n\n              if (currentPage !== this.page()) {\n                // #3157 Set guard flag so the page effect doesn't navigate back\n                // (which would snap to the top of the page during scrolling)\n                this._pageSetFromScroll = true;\n                this.page.set(currentPage);\n              }\n              if (currentPageLabel !== this.pageLabel()) {\n                this.pageLabel.set(currentPageLabel);\n              }\n            }),\n          );\n        }\n      },\n      opts,\n    );\n  }\n\n  public async openPDF2(): Promise<void> {\n    if (!this._src) {\n      return;\n    }\n    // #3131 Guard against detached ArrayBuffers — can happen if a previous open() already transferred the buffer to the worker.\n    // The 'detached' property is available in modern browsers (Chrome 114+, Firefox 122+, Safari 17.4+).\n    // In older browsers the property is undefined (falsy), so the check is safely skipped.\n    if (this._src instanceof ArrayBuffer && (this._src as any).detached) {\n      return;\n    }\n\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      // #3216 eventBus may be undefined during destroy/recreate transitions.\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 as any)?.['range']) {\n      options.range = (this._src as any)['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        if (this._src.byteLength === 0) {\n          // sometimes ngOnInit() calls openPdf2 too early\n          // so let's ignore empty arrays\n          return;\n        }\n        // #3131 Clone the buffer so the original survives pdf.js transferring it to the worker thread.\n        options.data = this._src.slice(0);\n      } else if (this._src instanceof Uint8Array) {\n        if (this._src.length === 0) {\n          // sometimes ngOnInit() calls openPdf2 too early\n          // so let's ignore empty arrays\n          return;\n        }\n        // #3131 Clone the buffer so the original survives pdf.js transferring it to the worker thread.\n        options.data = new Uint8Array(this._src);\n      }\n      options.rangeChunkSize = pdfDefaultOptions.rangeChunkSize;\n      this._lastOpenedSrc = this._src; // #3131\n      await PDFViewerApplication.open(options);\n    } catch (error) {\n      this.pdfLoadingFailed.emit(error as Error);\n    }\n  }\n\n  private selectCursorTool() {\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    // #3140 modified by ngx-extended-pdf-viewer\n    let tool: number;\n    // PAGE_FLIP takes priority over handTool when in book mode with the button shown,\n    // because book mode defaults to page-flip and handTool defaults to true on desktop.\n    if (this.showPageFlipButton() && this.pageViewMode() === 'book') {\n      tool = PdfCursorTools.PAGE_FLIP;\n    } else if (this.handTool()) {\n      tool = PdfCursorTools.HAND;\n    } else {\n      tool = PdfCursorTools.SELECT;\n    }\n    // #3216 eventBus may be undefined during destroy/recreate transitions of the PDFViewerApplication singleton.\n    PDFViewerApplication?.eventBus?.dispatch('switchcursortool', { tool });\n    // #3140 end of modification by ngx-extended-pdf-viewer\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 ngOnDestroy(): void {\n    this.destroyInitialization = true;\n    if (this.checkRootElementTimeout) {\n      clearTimeout(this.checkRootElementTimeout);\n    }\n    // #3131 Unregister all eventBus listeners synchronously before async cleanup.\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = null;\n    // #3216 Reset both flags synchronously. The async cleanup below also clears the\n    // singleton flag (later), but a new viewer mounted in the same microtask would\n    // otherwise see the stale `true` and let its effects dispatch against a singleton\n    // that's mid-teardown.\n    this.initialized = false;\n    this.service.ngxExtendedPdfViewerInitialized = false;\n\n    // Async cleanup is fire-and-forget — Angular does not await ngOnDestroy.\n    const cleanup = async () => {\n      if (this.initializationPromise) {\n        try {\n          await this.initializationPromise; // NOSONAR — typed as function but may hold a Promise at runtime\n        } catch {}\n      }\n\n      this.notificationService.onPDFJSInitSignal.set(undefined);\n      if (this.resizeObserver) {\n        this.resizeObserver.disconnect();\n      }\n      // do not run this code on the server\n      if (typeof window !== 'undefined') {\n        const pc = document.getElementById('printContainer');\n        if (pc) {\n          pc.remove();\n        }\n\n        // Restore original color-scheme to avoid polluting the global document\n        if (this.originalColorScheme !== null) {\n          const docStyle = document.documentElement.style;\n          if (this.originalColorScheme === '') {\n            docStyle.removeProperty('color-scheme');\n          } else {\n            docStyle.setProperty('color-scheme', this.originalColorScheme);\n          }\n          this.originalColorScheme = null;\n        }\n      }\n\n      // do not run this code on the server\n      if (typeof window !== 'undefined') {\n        const originalPrint = this.originalPrint;\n        if (window && originalPrint && !originalPrint.toString().includes('printPdf')) {\n          window.print = originalPrint;\n        }\n      }\n\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n\n      if (PDFViewerApplication) {\n        // #3131 Capture the eventBus reference before any await, so we can later\n        // check whether a new component has replaced it during async cleanup.\n        const bus = PDFViewerApplication.eventBus;\n        // #3131 Capture globalThis function references before the await, so we can\n        // check whether a new component has replaced them during async cleanup.\n        const w = globalThis as any;\n        const savedGlobals = {\n          getFormValueFromAngular: w.getFormValueFromAngular,\n          registerAcroformAnnotations: w.registerAcroformAnnotations,\n          getFormValue: w.getFormValue,\n          setFormValue: w.setFormValue,\n          assignFormIdAndFieldName: w.assignFormIdAndFieldName,\n          registerAcroformField: w.registerAcroformField,\n          registerXFAField: w.registerXFAField,\n          updateAngularFormValue: w.updateAngularFormValue,\n        };\n\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        // #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        // #3131 Only delete globalThis functions if they haven't been replaced\n        // by a new component's registerFormSupportWithPdfjs() during the await above.\n        for (const [key, savedRef] of Object.entries(savedGlobals)) {\n          if (w[key] === savedRef) {\n            delete w[key];\n          }\n        }\n\n        if (bus) {\n          PDFViewerApplication.unbindEvents();\n          bus.destroy();\n        }\n        PDFViewerApplication.unbindWindowEvents();\n        PDFViewerApplication?._cleanup();\n        // #3131 Only clear eventBus if it hasn't been replaced by a new component's\n        // initialization during the await above. Otherwise we destroy the new\n        // component's eventBus, causing \"Cannot read properties of undefined\" errors.\n        if (PDFViewerApplication.eventBus === bus || !PDFViewerApplication.eventBus) {\n          (PDFViewerApplication.eventBus as any) = undefined;\n        }\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) => {\n            (e as HTMLElement).remove();\n          });\n        }\n      }\n    }; // end of async cleanup\n    cleanup();\n  }\n\n  private isPrimaryMenuVisible(): boolean {\n    if (this.showToolbar()) {\n      const visible =\n        this.showDownloadButton() ||\n        this.showCommentEditor() ||\n        this.showDrawEditor() ||\n        this.showHighlightEditor() ||\n        this.showTextEditor() ||\n        this.showFindButton() ||\n        this.showOpenFileButton() ||\n        this.showPagingButtons() ||\n        this.showPresentationModeButton() ||\n        this.showPrintButton() ||\n        this.showPropertiesButton() ||\n        this.showRotateCwButton() ||\n        this.showRotateCcwButton() ||\n        this.showHandToolButton() ||\n        this.showBookModeButton() ||\n        this.showSinglePageModeButton() ||\n        this.showVerticalScrollButton() ||\n        this.showHorizontalScrollButton() ||\n        this.showInfiniteScrollButton() ||\n        this.showSpreadButton() ||\n        this.showSidebarButton() ||\n        this.showZoomButtons();\n\n      if (visible) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  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    if (this.destroyInitialization) {\n      return; // component is being destroyed\n    }\n    // sometimes effects call this method before the page is initialized,\n    // so let's check if this.root is already defined\n    const rootElement = this.root();\n    if (rootElement) {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n\n      let zoomAsNumber: string | number | undefined = this.zoom();\n      if (String(zoomAsNumber).endsWith('%')) {\n        zoomAsNumber = Number(String(zoomAsNumber).replace('%', '')) / 100;\n      } else if (!Number.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 (!Number.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      if (PDFViewerApplication.pdfViewer && PDFViewerApplication.pdfViewer._pages?.length > 0) {\n        // Guard against writing back a scale that pdf.js already has. During rapid\n        // pinch zoom (especially on iPad), the Angular effect can fire multiple times\n        // and write a stale numeric scale back to pdf.js WITHOUT an origin, causing\n        // the scroll position to jump (the page \"scrolls out of view\").\n        if (typeof zoomAsNumber === 'number') {\n          const currentScale = PDFViewerApplication.pdfViewer.currentScale;\n          if (Math.abs(zoomAsNumber - currentScale) < 1e-6) {\n            // Scale is already correct, but the toolbar dropdown and currentZoomFactor\n            // may be stale (e.g. after SPA navigation where #isSameScale suppressed\n            // the scalechanging event).\n            PDFViewerApplication.toolbar?.setPageScale(zoomAsNumber, zoomAsNumber);\n            this.currentZoomFactor.emit(Math.round(currentScale * 10000) / 10000);\n            return;\n          }\n        }\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        this.secondaryToolbarComponent()?.checkVisibility();\n        this.dynamicCSSComponent()?.updateToolbarWidth();\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        this.asyncWithCD(() => {\n          // Defer scrolling to ensure it happens after any other UI updates\n          setTimeout(\n            this.asyncWithCD(() => {\n              const viewerContainer = document.querySelector('#viewerContainer');\n              viewerContainer?.scrollBy(0, -32); // Adjust the scroll position\n            }),\n          );\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.set(pdfDefaultOptions.doubleTapZoomFactor); // by default: 'page-width';\n      await this.setZoom();\n    } else if (pdfDefaultOptions.doubleTapResetsZoomOnSecondDoubleTap) {\n      if (this.previousZoom) {\n        this.zoom.set(this.previousZoom);\n      } else {\n        this.zoom.set('page-width');\n      }\n      await this.setZoom();\n    } else {\n      return;\n    }\n\n    const currentScale = (PDFViewerApplication.pdfViewer as any).currentScale;\n    const scaleCorrectionFactor = currentScale / previousScale - 1;\n    const rect = (PDFViewerApplication.pdfViewer as any).container.getBoundingClientRect();\n    const dy = desiredCenterY - rect.top;\n    (PDFViewerApplication.pdfViewer as any).container.scrollTop += dy * scaleCorrectionFactor;\n  }\n\n  private enableOrDisableForms(div: HTMLElement, doNotEnable: boolean) {\n    if (!this.disableForms() && doNotEnable) {\n      return;\n    }\n    const xfaLayers = Array.from(div.querySelectorAll('.xfaLayer'));\n    const acroFormLayers = Array.from(div.querySelectorAll('.annotationLayer'));\n    const layers = xfaLayers.concat(...acroFormLayers);\n    layers.forEach((layer) => layer.querySelectorAll('input').forEach((x) => (x.disabled = this.disableForms())));\n    layers.forEach((layer) => layer.querySelectorAll('select').forEach((x) => (x.disabled = this.disableForms())));\n    layers.forEach((layer) => layer.querySelectorAll('textarea').forEach((x) => (x.disabled = this.disableForms())));\n  }\n\n  public closeCommentsSidebar(): void {\n    const PDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n    if (PDFViewerApplication?.eventBus) {\n      PDFViewerApplication.eventBus.dispatch('switchannotationeditormode', {\n        source: this,\n        mode: 0, // AnnotationEditorType.NONE\n      });\n    }\n  }\n}\n","@if (theme() === 'dark') {\n  <pdf-dark-theme></pdf-dark-theme>\n}\n@if (theme() === 'light') {\n  <pdf-light-theme></pdf-light-theme>\n}\n<pdf-acroform-default-theme></pdf-acroform-default-theme>\n\n<pdf-dynamic-css\n  #DynamicCssComponent\n  [zoom]=\"mobileFriendlyZoomScale\"\n></pdf-dynamic-css>\n<ng-content *ngTemplateOutlet=\"customPdfViewer() || defaultPdfViewer\"></ng-content>\n\n<ng-template #defaultPdfViewer>\n  <div\n    class=\"zoom\"\n    [style.height]=\"minHeight || height\"\n    #root\n  >\n    <div class=\"html\">\n      <div\n        [class]=\"'body pdf-js-version-' + majorMinorPdfJsVersion\"\n        [style.backgroundColor]=\"backgroundColor()\"\n      >\n        <div id=\"outerContainer\">\n          @if (showFreeFloatingBar()) {\n            <div class=\"free-floating-bar\">\n              <ng-content *ngTemplateOutlet=\"customFreeFloatingBar() || defaultFreeFloatingBar\"> </ng-content>\n            </div>\n          }\n          <pdf-sidebar\n            #pdfsidebar\n            [sidebarVisible]=\"sidebarVisible() || false\"\n            [showSidebarButton]=\"showSidebarButton()\"\n            [customSidebar]=\"customSidebar()\"\n            [customThumbnail]=\"customThumbnail()\"\n            (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n            [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n            [sidebarPositionTop]=\"sidebarPositionTop\"\n          >\n          </pdf-sidebar>\n          <div\n            id=\"mainContainer\"\n            [class.toolbar-hidden]=\"!primaryMenuVisible\"\n          >\n            <pdf-dummy-components></pdf-dummy-components>\n\n            <!-- #2818 modified by ngx-extended-pdf-viewer -->\n            <pdf-toolbar\n              (onToolbarLoaded)=\"onToolbarLoaded($event)\"\n              [sidebarVisible]=\"sidebarVisible()\"\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [customToolbar]=\"customToolbar()\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [(pageViewMode)]=\"pageViewMode\"\n              [primaryMenuVisible]=\"primaryMenuVisible\"\n              [scrollMode]=\"scrollMode() ?? 0\"\n              [showPropertiesButton]=\"showPropertiesButton()\"\n              [showBookModeButton]=\"showBookModeButton()\"\n              [showDownloadButton]=\"showDownloadButton()\"\n              [showCommentEditor]=\"effectiveShowCommentEditor()\"\n              [showDrawEditor]=\"effectiveShowDrawEditor()\"\n              [showHighlightEditor]=\"effectiveShowHighlightEditor()\"\n              [showFindButton]=\"showFindButton()\"\n              [showHandToolButton]=\"showHandToolButton()\"\n              [handTool]=\"handTool()\"\n              [showHorizontalScrollButton]=\"showHorizontalScrollButton()\"\n              [showInfiniteScrollButton]=\"showInfiniteScrollButton()\"\n              [showOpenFileButton]=\"showOpenFileButton()\"\n              [showMovePageButton]=\"showMovePageButton()\"\n              [showPagingButtons]=\"showPagingButtons()\"\n              [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons()\"\n              [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons()\"\n              [showPageNumber]=\"showPageNumber()\"\n              [disablePageNumber]=\"disablePageNumber()\"\n              [showPageLabel]=\"showPageLabel()\"\n              [showPresentationModeButton]=\"showPresentationModeButton() && pageViewMode() !== 'book'\"\n              [showPrintButton]=\"enablePrint() ? showPrintButton() : false\"\n              [showRotateCwButton]=\"showRotateCwButton()\"\n              [showRotateCcwButton]=\"showRotateCcwButton()\"\n              [showSecondaryToolbarButton]=\"showSecondaryToolbarButton() && !service.secondaryMenuIsEmpty()\"\n              [showSidebarButton]=\"showSidebarButton()\"\n              [showSinglePageModeButton]=\"showSinglePageModeButton()\"\n              [showSignatureEditor]=\"enableSignatureEditor ? effectiveShowSignatureEditor() : false\"\n              [showSpreadButton]=\"showSpreadButton()\"\n              [showStampEditor]=\"effectiveShowStampEditor()\"\n              [showTextEditor]=\"effectiveShowTextEditor()\"\n              [showVerticalScrollButton]=\"showVerticalScrollButton()\"\n              [showWrappedScrollButton]=\"showWrappedScrollButton()\"\n              [showZoomButtons]=\"showZoomButtons()\"\n              [showZoomDropdown]=\"showZoomDropdown()\"\n              [disableZoomDropdown]=\"disableZoomDropdown()\"\n              [spread]=\"spread()\"\n              [textLayer]=\"textLayer()\"\n              [toolbarMarginTop]=\"toolbarMarginTop\"\n              [toolbarWidth]=\"toolbarWidth\"\n              [zoomLevels]=\"zoomLevels()\"\n              [findbarVisible]=\"findbarVisible()\"\n              [hasTextLayer]=\"hasTextLayer\"\n              [disableSidebarButton]=\"disableSidebarButton()\"\n              [disableFindButton]=\"disableFindButton()\"\n              [disablePagingButtons]=\"disablePagingButtons()\"\n              [disableFirstAndLastPageButtons]=\"disableFirstAndLastPageButtons()\"\n              [disablePreviousAndNextPageButtons]=\"disablePreviousAndNextPageButtons()\"\n              [disableZoomButtons]=\"disableZoomButtons()\"\n              [disablePropertiesButton]=\"disablePropertiesButton()\"\n              [disableSpreadButton]=\"disableSpreadButton()\"\n              [disableSinglePageModeButton]=\"disableSinglePageModeButton()\"\n              [disableVerticalScrollButton]=\"disableVerticalScrollButton()\"\n              [disableHorizontalScrollButton]=\"disableHorizontalScrollButton()\"\n              [disableWrappedScrollButton]=\"disableWrappedScrollButton()\"\n              [disableInfiniteScrollButton]=\"disableInfiniteScrollButton()\"\n              [disableBookModeButton]=\"disableBookModeButton()\"\n              [disableHandToolButton]=\"disableHandToolButton()\"\n              [showPageFlipButton]=\"pageViewMode() === 'book' ? showPageFlipButton() : false\"\n              [disablePageFlipButton]=\"disablePageFlipButton()\"\n              [disableRotateCwButton]=\"disableRotateCwButton()\"\n              [disableRotateCcwButton]=\"disableRotateCcwButton()\"\n              [disablePresentationModeButton]=\"disablePresentationModeButton()\"\n              [disableOpenFileButton]=\"disableOpenFileButton()\"\n              [disablePrintButton]=\"disablePrintButton()\"\n              [disableDownloadButton]=\"disableDownloadButton()\"\n              [disableMovePageButton]=\"disableMovePageButton()\"\n              [disableTextEditor]=\"disableEditorButtons() || disableTextEditor()\"\n              [disableStampEditor]=\"disableEditorButtons() || disableStampEditor()\"\n              [disableCommentEditor]=\"disableEditorButtons() || disableCommentEditor()\"\n              [disableDrawEditor]=\"disableEditorButtons() || disableDrawEditor()\"\n              [disableHighlightEditor]=\"disableEditorButtons() || disableHighlightEditor()\"\n              [disableSignatureEditor]=\"disableEditorButtons() || disableSignatureEditor()\"\n              [disableSecondaryToolbarButton]=\"disableSecondaryToolbarButton()\"\n            ></pdf-toolbar>\n            <!-- #2818 end of modification by ngx-extended-pdf-viewer -->\n\n            <div\n              class=\"editorParamsToolbar sidebar hidden menu doorHangerRight\"\n              id=\"editorCommentParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n              [style.top]=\"editorParamsToolbarTop\"\n            >\n              <div id=\"editorCommentsSidebar\" class=\"menuContainer sidebar\" role=\"landmark\" aria-labelledby=\"editorCommentsSidebarHeader\">\n                <div id=\"editorCommentsSidebarResizer\" class=\"sidebarResizer\"></div>\n                <div id=\"editorCommentsSidebarHeader\" role=\"heading\" aria-level=\"2\">\n                  <span class=\"commentCount\">\n                    <span id=\"editorCommentsSidebarTitle\">Comments</span>\n                    <span id=\"editorCommentsSidebarCount\"></span>\n                  </span>\n                  <button id=\"editorCommentsSidebarCloseButton\" type=\"button\" tabindex=\"0\" title=\"Close the sidebar\" (click)=\"closeCommentsSidebar()\">\n                    <svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n                      <path fill=\"currentColor\" d=\"M2.343 2.343a.5.5 0 0 1 .707 0L8 7.293l4.95-4.95a.5.5 0 1 1 .707.707L8.707 8l4.95 4.95a.5.5 0 0 1-.707.707L8 8.707l-4.95 4.95a.5.5 0 0 1-.707-.707L7.293 8 2.343 2.657a.5.5 0 0 1 0-.707z\"/>\n                    </svg>\n                    <span class=\"visually-hidden\">Close the sidebar</span>\n                  </button>\n                </div>\n                <div id=\"editorCommentsSidebarListContainer\">\n                  <ul id=\"editorCommentsSidebarList\"></ul>\n                </div>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight menu\"\n              id=\"editorSignatureParamsToolbar\"\n            >\n              <div\n                id=\"addSignatureDoorHanger\"\n                class=\"menuContainer\"\n                role=\"region\"\n                data-l10n-id=\"pdfjs-editor-add-signature-container\"\n              >\n                <button\n                  id=\"editorSignatureAddSignature\"\n                  class=\"toolbarButton labeled\"\n                  type=\"button\"\n                  tabindex=\"0\"\n                  data-l10n-id=\"pdfjs-editor-signature-add-signature-button\"\n                >\n                  <span\n                    data-l10n-id=\"pdfjs-editor-signature-add-signature-button-label\"\n                    class=\"editorParamsLabel\"\n                  ></span>\n                </button>\n              </div>\n            </div>\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorHighlightParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div\n                id=\"highlightParamsToolbarContainer\"\n                class=\"editorParamsToolbarContainer\"\n              >\n                <div\n                  id=\"editorHighlightColorPicker\"\n                  class=\"colorPicker\"\n                >\n                  <span\n                    id=\"highlightColorPickerLabel\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-highlight-colorpicker-label\"\n                    >Highlight color</span\n                  >\n                </div>\n                <div id=\"editorHighlightThickness\">\n                  <label\n                    for=\"editorFreeHighlightThickness\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-free-highlight-thickness-input\"\n                    >Thickness</label\n                  >\n                  <div class=\"thicknessPicker\">\n                    <input\n                      type=\"range\"\n                      id=\"editorFreeHighlightThickness\"\n                      class=\"editorParamsSlider\"\n                      data-l10n-id=\"pdfjs-editor-free-highlight-thickness-title\"\n                      value=\"12\"\n                      min=\"8\"\n                      max=\"24\"\n                      step=\"1\"\n                    />\n                  </div>\n                </div>\n                <div id=\"editorHighlightVisibility\">\n                  <div class=\"divider\"></div>\n                  <div class=\"toggler\">\n                    <label\n                      for=\"editorHighlightShowAll\"\n                      class=\"editorParamsLabel\"\n                      data-l10n-id=\"pdfjs-editor-highlight-show-all-button-label\"\n                      >Show all</label\n                    >\n                    <button\n                      id=\"editorHighlightShowAll\"\n                      class=\"toggle-button\"\n                      data-l10n-id=\"pdfjs-editor-highlight-show-all-button\"\n                      aria-pressed=\"true\"\n                    ></button>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorFreeTextParamsToolbar\"\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div class=\"editorParamsToolbarContainer\">\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorFreeTextColor\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-free-text-color-input\"\n                    >Font Color</label\n                  >\n                  <input\n                    type=\"color\"\n                    id=\"editorFreeTextColor\"\n                    class=\"editorParamsColor\"\n                  />\n                </div>\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorFreeTextFontSize\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-free-text-size-input\"\n                    >Font Size</label\n                  >\n                  <input\n                    type=\"range\"\n                    id=\"editorFreeTextFontSize\"\n                    class=\"editorParamsSlider\"\n                    value=\"10\"\n                    min=\"5\"\n                    max=\"100\"\n                    step=\"1\"\n                  />\n                </div>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorStampParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n            >\n              <div class=\"editorParamsToolbarContainer\">\n                <button\n                  id=\"editorStampAddImage\"\n                  class=\"secondaryToolbarButton\"\n                  title=\"Add image\"\n                  data-l10n-id=\"pdfjs-editor-stamp-add-image-button\"\n                >\n                  <svg\n                    aria-hidden=\"true\"\n                    focusable=\"false\"\n                    width=\"16\"\n                    height=\"16\"\n                    viewBox=\"0 0 16 16\"\n                    fill=\"none\"\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                    class=\"align-image-to-text\"\n                  >\n                    <path\n                      d=\"M7.00488 9.75V14C7.00488 14.1658 7.07073 14.3247 7.18794 14.4419C7.30515 14.5592 7.46412 14.625 7.62988 14.625C7.79564 14.625 7.95461 14.5592 8.07183 14.4419C8.18904 14.3247 8.25488 14.1658 8.25488 14V9.75L8.75488 9.25H13.0049C13.1706 9.25 13.3296 9.18415 13.4468 9.06694C13.564 8.94973 13.6299 8.79076 13.6299 8.625C13.6299 8.45924 13.564 8.30027 13.4468 8.18306C13.3296 8.06585 13.1706 8 13.0049 8H8.75488L8.25488 7.5V3.25C8.25488 3.08424 8.18904 2.92527 8.07183 2.80806C7.95461 2.69085 7.79564 2.625 7.62988 2.625C7.46412 2.625 7.30515 2.69085 7.18794 2.80806C7.07073 2.92527 7.00488 3.08424 7.00488 3.25V7.5L6.50488 8H2.25488C2.08912 8 1.93015 8.06585 1.81294 8.18306C1.69573 8.30027 1.62988 8.45924 1.62988 8.625C1.62988 8.79076 1.69573 8.94973 1.81294 9.06694C1.93015 9.18415 2.08912 9.25 2.25488 9.25H6.39188L7.00488 9.75Z\"\n                      fill=\"black\"\n                    />\n                  </svg>\n                  <span data-l10n-id=\"pdfjs-editor-stamp-add-image-button-label\">Add image</span>\n                </button>\n              </div>\n            </div>\n\n            <div\n              class=\"editorParamsToolbar hidden doorHangerRight\"\n              id=\"editorInkParamsToolbar\"\n              [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n              [class.server-side-rendering]=\"serverSideRendering\"\n            >\n              <div class=\"editorParamsToolbarContainer\">\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorInkColor\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-ink-color-input\"\n                    >Color</label\n                  >\n                  <input\n                    type=\"color\"\n                    id=\"editorInkColor\"\n                    class=\"editorParamsColor\"\n                  />\n                </div>\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorInkThickness\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-ink-thickness-input\"\n                    >Thickness</label\n                  >\n                  <input\n                    type=\"range\"\n                    id=\"editorInkThickness\"\n                    class=\"editorParamsSlider\"\n                    value=\"1\"\n                    min=\"1\"\n                    max=\"20\"\n                    step=\"1\"\n                  />\n                </div>\n                <div class=\"editorParamsSetter\">\n                  <label\n                    for=\"editorInkOpacity\"\n                    class=\"editorParamsLabel\"\n                    data-l10n-id=\"pdfjs-editor-ink-opacity-input\"\n                    >Opacity</label\n                  >\n                  <input\n                    type=\"range\"\n                    id=\"editorInkOpacity\"\n                    class=\"editorParamsSlider\"\n                    value=\"1\"\n                    min=\"0.05\"\n                    max=\"1\"\n                    step=\"0.05\"\n                  />\n                </div>\n              </div>\n            </div>\n\n            <pdf-secondary-toolbar\n              #pdfSecondaryToolbarComponent\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [customSecondaryToolbar]=\"customSecondaryToolbar()\"\n              [secondaryToolbarTop]=\"secondaryToolbarTop\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              (spreadChange)=\"onSpreadChange($event)\"\n              [localizationInitialized]=\"localizationInitialized\"\n            >\n            </pdf-secondary-toolbar>\n\n            <pdf-findbar\n              [class.server-side-rendering]=\"serverSideRendering\"\n              [findbarLeft]=\"findbarLeft\"\n              [findbarTop]=\"findbarTop\"\n              [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale\"\n              [showFindButton]=\"showFindButton() || false\"\n              [customFindbarInputArea]=\"customFindbarInputArea()\"\n              [customFindbarButtons]=\"customFindbarButtons()\"\n              [showFindEntireWord]=\"showFindEntireWord()\"\n              [showFindHighlightAll]=\"showFindHighlightAll()\"\n              [showFindMatchDiacritics]=\"showFindMatchDiacritics()\"\n              [showFindMatchCase]=\"showFindMatchCase()\"\n              [showFindMultiple]=\"showFindMultiple()\"\n              [showFindRegexp]=\"showFindRegexp()\"\n              [showFindMessages]=\"showFindMessages()\"\n              [showFindResultsCount]=\"showFindResultsCount()\"\n            >\n            </pdf-findbar>\n\n            <pdf-context-menu></pdf-context-menu>\n\n            <div\n              id=\"viewerContainer\"\n              [style.top]=\"viewerPositionTop\"\n              [style.backgroundColor]=\"backgroundColor()\"\n            >\n              @if (hasSignature && showUnverifiedSignatures()) {\n                <div class=\"unverified-signature-warning\">\n                  {{\n                    'unverified-signature-warning'\n                      | translate\n                        : \"This PDF file contains a digital signature. The PDF viewer can't verify if the signature is valid.\n                Please download the file and open it in Acrobat Reader to verify the signature is valid.\"\n                      | async\n                  }}\n                </div>\n              }\n              <div\n                id=\"viewer\"\n                class=\"pdfViewer\"\n                [style.backgroundColor]=\"backgroundColor()\"\n                (dblclick)=\"zoomToPageWidth($event)\"\n              ></div>\n            </div>\n            <pdf-error-message></pdf-error-message>\n          </div>\n          <!-- mainContainer -->\n\n          <div id=\"dialogContainer\">\n            <pdf-password-dialog></pdf-password-dialog>\n            <pdf-document-properties-dialog></pdf-document-properties-dialog>\n            <pdf-alt-text-dialog></pdf-alt-text-dialog>\n            <pdf-alt-text-settings-dialog></pdf-alt-text-settings-dialog>\n            <pdf-prepare-printing-dialog></pdf-prepare-printing-dialog>\n            <pdf-add-signature-dialog></pdf-add-signature-dialog>\n            <pdf-edit-signature-dialog></pdf-edit-signature-dialog>\n            <pdf-comment-manager-dialog></pdf-comment-manager-dialog>\n          </div>\n          <!-- dialogContainer -->\n        </div>\n        <div\n          id=\"editorUndoBar\"\n          class=\"messageBar\"\n          role=\"status\"\n          aria-labelledby=\"editorUndoBarMessage\"\n          tabindex=\"-1\"\n          hidden\n        >\n          <div>\n            <div>\n              <span\n                id=\"editorUndoBarMessage\"\n                class=\"description\"\n              ></span>\n            </div>\n            <button\n              id=\"editorUndoBarUndoButton\"\n              class=\"undoButton\"\n              type=\"button\"\n              tabindex=\"0\"\n              title=\"Undo\"\n              data-l10n-id=\"pdfjs-editor-undo-bar-undo-button\"\n            >\n              <span data-l10n-id=\"pdfjs-editor-undo-bar-undo-button-label\">Undo</span>\n            </button>\n            <button\n              id=\"editorUndoBarCloseButton\"\n              class=\"closeButton\"\n              type=\"button\"\n              tabindex=\"0\"\n              title=\"Close\"\n              data-l10n-id=\"pdfjs-editor-undo-bar-close-button\"\n            >\n              <span data-l10n-id=\"pdfjs-editor-undo-bar-close-button-label\">Close</span>\n            </button>\n          </div>\n        </div>\n        <!-- editorUndoBar -->\n        <!-- outerContainer -->\n      </div>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #defaultFreeFloatingBar> </ng-template>\n","import { Component, input, effect, OnDestroy } 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    standalone: false\n})\nexport class PdfRotatePageComponent implements OnDestroy {\n  public showRotateButton = input<ResponsiveVisibility>(true);\n\n  public disableRotate = true;\n\n  public clockwise = input(true);\n\n  public counterClockwise = input(true);\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  private eventBusAbortController: AbortController | null = null;\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  constructor(notificationService: PDFNotificationService) {\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    // #3135 modified by ngx-extended-pdf-viewer\n    this.eventBusAbortController?.abort();\n    this.eventBusAbortController = new AbortController();\n    const opts = { signal: this.eventBusAbortController.signal };\n    // #3135 end of modification by ngx-extended-pdf-viewer\n    this.PDFViewerApplication?.eventBus.on('updateuistate', (event) => this.updateUIState(event), opts);\n  }\n\n  // #3135 modified by ngx-extended-pdf-viewer\n  public ngOnDestroy(): void {\n    this.eventBusAbortController?.abort();\n  }\n  // #3135 end of modification by ngx-extended-pdf-viewer\n\n  public updateUIState(event: UpdateUIStateEvent): void {\n    this.disableRotate = event.pagesCount === 0;\n  }\n}\n","@if (clockwise()) {\n  <pdf-shy-button\n    [action]=\"rotateCW\"\n    primaryToolbarId=\"primaryPageRotateCw\"\n    class=\"rotateCw\"\n    [cssClass]=\"showRotateButton() | responsiveCSSClass : 'hiddenXLView'\"\n    title=\"Rotate Clockwise\"\n    l10nId=\"pdfjs-page-rotate-cw-button\"\n    l10nLabel=\"pdfjs-page-rotate-cw-button-label\"\n    [disabled]=\"disableRotate\"\n    [order]=\"900\"\n    [closeOnClick]=\"false\"\n    image=\"<svg aria-hidden='true' focusable='false' width='23px' height='23px' viewBox='0 0 24 24'><path fill='currentColor' d='M12 3C7.03 3 3 7.03 3 12S7.03 21 12 21C14 21 15.92 20.34 17.5 19.14L16.06 17.7C14.87 18.54 13.45 19 12 19C8.13 19 5 15.87 5 12S8.13 5 12 5 19 8.13 19 12H16L20 16L24 12H21C21 7.03 16.97 3 12 3'/></svg>\"\n    >\n  </pdf-shy-button>\n}\n@if (counterClockwise()) {\n  <pdf-shy-button\n    [action]=\"rotateCCW\"\n    primaryToolbarId=\"primaryPageRotateCcw\"\n    class=\"rotateCcw\"\n    [cssClass]=\"showRotateButton() | responsiveCSSClass : 'hiddenXLView'\"\n    title=\"Rotate Counterclockwise\"\n    l10nId=\"pdfjs-page-rotate-ccw-button\"\n    l10nLabel=\"pdfjs-page-rotate-ccw-button-label\"\n    [disabled]=\"disableRotate\"\n    [order]=\"1000\"\n    [closeOnClick]=\"false\"\n    image=\"<svg aria-hidden='true' focusable='false' width='23px' height='23px' viewBox='0 0 24 24'><path fill='currentColor' d='M12 3C7.03 3 3 7.03 3 12H0L4 16L8 12H5C5 8.13 8.13 5 12 5S19 8.13 19 12 15.87 19 12 19C10.55 19 9.13 18.54 7.94 17.7L6.5 19.14C8.08 20.34 10 21 12 21C16.97 21 21 16.97 21 12S16.97 3 12 3'/></svg>\"\n    >\n  </pdf-shy-button>\n}\n","// tslint:disable:max-line-length\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DynamicCssComponent } from './dynamic-css/dynamic-css.component';\nimport { PositioningService } from './dynamic-css/positioning.service';\nimport { NgxExtendedPdfViewerComponent } from './ngx-extended-pdf-viewer.component';\nimport { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer.service';\nimport { AddSignatureDialogComponent as PdfAddSignatureDialogComponent } from './pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component';\nimport { PdfAltTextDialogComponent } from './pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component';\nimport { PdfAltTextSettingsDialogComponent } from './pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component';\nimport { PdfDocumentPropertiesDialogComponent } from './pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nimport { EditSignatureDialogComponent as PdfEditSignatureDialogComponent } from './pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-dialog.component';\nimport { PdfErrorMessageComponent } from './pdf-dialog/pdf-error-message/pdf-error-message.component';\nimport { PdfPasswordDialogComponent } from './pdf-dialog/pdf-password-dialog/pdf-password-dialog.component';\nimport { PdfPreparePrintingDialogComponent } from './pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { NegativeResponsiveCSSClassPipe, ResponsiveCSSClassPipe } from './responsive-visibility';\nimport { SanitizedHtmlPipe } from './secondary-toolbar/sanitized-html.pipe';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { PdfSidebarContentComponent } from './sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nimport { PdfSidebarToolbarComponent } from './sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\nimport { PdfAcroformDefaultThemeComponent } from './theme/acroform-default-theme/pdf-acroform-default-theme.component';\nimport { PdfDarkThemeComponent } from './theme/pdf-dark-theme/pdf-dark-theme.component';\nimport { PdfLightThemeComponent } from './theme/pdf-light-theme/pdf-light-theme.component';\nimport { PdfBookModeComponent } from './toolbar/pdf-book-mode/pdf-book-mode.component';\nimport { PdfCommentEditorComponent } from './toolbar/pdf-comment-editor/pdf-comment-editor.component';\nimport { PdfContextMenuComponent } from './toolbar/pdf-context-menu/pdf-context-menu.component';\nimport { PdfDocumentPropertiesComponent } from './toolbar/pdf-document-properties/pdf-document-properties.component';\nimport { PdfDownloadComponent } from './toolbar/pdf-download/pdf-download.component';\nimport { PdfDrawEditorComponent } from './toolbar/pdf-draw-editor/pdf-draw-editor.component';\nimport { PdfEditorSignatureComponent } from './toolbar/pdf-editor-signature/pdf-editor-signature.component';\nimport { PdfEditorComponent } from './toolbar/pdf-editor/pdf-editor.component';\nimport { PdfEvenSpreadComponent } from './toolbar/pdf-even-spread/pdf-even-spread.component';\nimport { PdfFindButtonComponent } from './toolbar/pdf-find-button/pdf-find-button.component';\nimport { PdfFindInputAreaComponent } from './toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nimport { PdfFindNextComponent } from './toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nimport { PdfFindPreviousComponent } from './toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nimport { PdfFindbarMessageContainerComponent } from './toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nimport { PdfFindHighlightAllComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nimport { PdfFindMatchCaseComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nimport { PdfFindMultipleComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component';\nimport { PdfFindRegExpComponent } from './toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component';\nimport { PdfFindResultsCountComponent } from './toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nimport { PdfFindEntireWordComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nimport { PdfMatchDiacriticsComponent } from './toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.component';\nimport { PdfFindbarComponent } from './toolbar/pdf-findbar/pdf-findbar.component';\nimport { PdfSearchInputFieldComponent } from './toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nimport { PdfHandToolComponent } from './toolbar/pdf-hand-tool/pdf-hand-tool.component';\nimport { PdfPageFlipToolComponent } from './toolbar/pdf-page-flip-tool/pdf-page-flip-tool.component';\nimport { PdfHighlightEditorComponent } from './toolbar/pdf-highlight-editor/pdf-highlight-editor.component';\nimport { PdfHorizontalScrollComponent } from './toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component';\nimport { PdfInfiniteScrollComponent } from './toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component';\nimport { PdfMoveDownComponent } from './toolbar/pdf-move-down/pdf-move-down.component';\nimport { PdfMoveUpComponent } from './toolbar/pdf-move-up/pdf-move-up.component';\nimport { PdfNoSpreadComponent } from './toolbar/pdf-no-spread/pdf-no-spread.component';\nimport { PdfOddSpreadComponent } from './toolbar/pdf-odd-spread/pdf-odd-spread.component';\nimport { PdfOpenFileComponent } from './toolbar/pdf-open-file/pdf-open-file.component';\nimport { PdfFirstPageComponent } from './toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nimport { PdfLastPageComponent } from './toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nimport { PdfNextPageComponent } from './toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nimport { PdfPageNumberComponent } from './toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nimport { PdfPagingAreaComponent } from './toolbar/pdf-paging-area/pdf-paging-area.component';\nimport { PdfPreviousPageComponent } from './toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nimport { PdfPresentationModeComponent } from './toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nimport { PdfPrintComponent } from './toolbar/pdf-print/pdf-print.component';\nimport { PdfRotatePageCcwComponent } from './toolbar/pdf-rotate-page-ccw/pdf-rotate-page-ccw.component';\nimport { PdfRotatePageCwComponent } from './toolbar/pdf-rotate-page-cw/pdf-rotate-page-cw.component';\nimport { PdfRotatePageComponent } from './toolbar/pdf-rotate-page/pdf-rotate-page.component';\nimport { PdfSelectToolComponent } from './toolbar/pdf-select-tool/pdf-select-tool.component';\nimport { PdfShyButtonComponent } from './toolbar/pdf-shy-button/pdf-shy-button.component';\nimport { PdfSinglePageModeComponent } from './toolbar/pdf-single-page-mode/pdf-single-page-mode.component';\nimport { PdfStampEditorComponent } from './toolbar/pdf-stamp-editor/pdf-stamp-editor.component';\nimport { PdfTextEditorComponent } from './toolbar/pdf-text-editor/pdf-text-editor.component';\nimport { PdfToggleSecondaryToolbarComponent } from './toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nimport { PdfToggleSidebarComponent } from './toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nimport { PdfToolbarComponent } from './toolbar/pdf-toolbar/pdf-toolbar.component';\nimport { PdfVerticalScrollModeComponent } from './toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component';\nimport { PdfWrappedScrollModeComponent } from './toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component';\nimport { PdfZoomDropdownComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nimport { PdfZoomInComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nimport { PdfZoomOutComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nimport { PdfZoomToolbarComponent } from './toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nimport { TranslatePipe } from './translate.pipe';\nimport { PdfCommentManagerDialogComponent } from \"./pdf-dialog/pdf-comment-manager-dialog/pdf-comment-manager-dialog.component\";\n\nif (!(Promise as any)['allSettled']) {\n  if (!!(window as any)['Zone'] && !(window as any)['__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    SanitizedHtmlPipe,\n    NgxExtendedPdfViewerComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAddSignatureDialogComponent,\n    PdfBookModeComponent,\n    PdfCommentEditorComponent,\n    PdfCommentManagerDialogComponent,\n    PdfContextMenuComponent,\n    PdfDarkThemeComponent,\n    PdfDrawEditorComponent,\n    PdfAltTextDialogComponent,\n    PdfAltTextSettingsDialogComponent,\n    PdfDocumentPropertiesComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfDownloadComponent,\n    PdfDummyComponentsComponent,\n    PdfEditorComponent,\n    PdfEditSignatureDialogComponent,\n    PdfEditorSignatureComponent,\n    PdfErrorMessageComponent,\n    PdfEvenSpreadComponent,\n    PdfFindbarComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindButtonComponent,\n    PdfFindEntireWordComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindInputAreaComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindMultipleComponent,\n    PdfFindRegExpComponent,\n    PdfFindNextComponent,\n    PdfFindPreviousComponent,\n    PdfFindResultsCountComponent,\n    PdfFirstPageComponent,\n    PdfHandToolComponent,\n    PdfPageFlipToolComponent,\n    PdfHighlightEditorComponent,\n    PdfHorizontalScrollComponent,\n    PdfInfiniteScrollComponent,\n    PdfLastPageComponent,\n    PdfLightThemeComponent,\n    PdfMatchDiacriticsComponent,\n    PdfMoveDownComponent,\n    PdfMoveUpComponent,\n    PdfNextPageComponent,\n    PdfNoSpreadComponent,\n    PdfOddSpreadComponent,\n    PdfOpenFileComponent,\n    PdfPageNumberComponent,\n    PdfPagingAreaComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfPresentationModeComponent,\n    PdfPreviousPageComponent,\n    PdfPrintComponent,\n    PdfRotatePageComponent,\n    PdfRotatePageCwComponent,\n    PdfRotatePageCcwComponent,\n    PdfSearchInputFieldComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSelectToolComponent,\n    PdfShyButtonComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSinglePageModeComponent,\n    PdfStampEditorComponent,\n    PdfTextEditorComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfToggleSidebarComponent,\n    PdfToolbarComponent,\n    PdfVerticalScrollModeComponent,\n    PdfWrappedScrollModeComponent,\n    PdfZoomDropdownComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfZoomToolbarComponent,\n    ResponsiveCSSClassPipe,\n    TranslatePipe,\n  ],\n  providers: [NgxExtendedPdfViewerService, PositioningService],\n  exports: [\n    NegativeResponsiveCSSClassPipe,\n    NgxExtendedPdfViewerComponent,\n    PdfAcroformDefaultThemeComponent,\n    PdfAddSignatureDialogComponent,\n    PdfAltTextDialogComponent,\n    PdfAltTextSettingsDialogComponent,\n    PdfBookModeComponent,\n    PdfCommentEditorComponent,\n    PdfCommentManagerDialogComponent,\n    PdfContextMenuComponent,\n    PdfDarkThemeComponent,\n    PdfDocumentPropertiesComponent,\n    PdfDrawEditorComponent,\n    PdfDocumentPropertiesDialogComponent,\n    PdfDownloadComponent,\n    PdfDummyComponentsComponent,\n    PdfEditorComponent,\n    PdfEditSignatureDialogComponent,\n    PdfEditorSignatureComponent,\n    PdfErrorMessageComponent,\n    PdfEvenSpreadComponent,\n    PdfFindbarComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindButtonComponent,\n    PdfFindEntireWordComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindInputAreaComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindNextComponent,\n    PdfFindPreviousComponent,\n    PdfFindResultsCountComponent,\n    PdfFirstPageComponent,\n    PdfHandToolComponent,\n    PdfPageFlipToolComponent,\n    PdfHighlightEditorComponent,\n    PdfHorizontalScrollComponent,\n    PdfInfiniteScrollComponent,\n    PdfLastPageComponent,\n    PdfLightThemeComponent,\n    PdfMatchDiacriticsComponent,\n    PdfMoveDownComponent,\n    PdfMoveUpComponent,\n    PdfNextPageComponent,\n    PdfNoSpreadComponent,\n    PdfOddSpreadComponent,\n    PdfOpenFileComponent,\n    PdfPageNumberComponent,\n    PdfPagingAreaComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfPresentationModeComponent,\n    PdfPreviousPageComponent,\n    PdfPrintComponent,\n    PdfRotatePageComponent,\n    PdfSearchInputFieldComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSelectToolComponent,\n    PdfShyButtonComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSinglePageModeComponent,\n    PdfStampEditorComponent,\n    PdfTextEditorComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfToggleSidebarComponent,\n    PdfToolbarComponent,\n    PdfVerticalScrollModeComponent,\n    PdfWrappedScrollModeComponent,\n    PdfZoomDropdownComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfZoomToolbarComponent,\n    ResponsiveCSSClassPipe,\n  ],\n})\nexport class NgxExtendedPdfViewerModule {}\n","/*\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {IL10n} l10n - Localization service.\n * @property {boolean} [enableScripting]\n * @property {Promise<boolean>} [hasJSActionsPromise]\n * @property {Promise<Object<string, Array<Object>> | null>}\n *   [fieldObjectsPromise]\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n * @property {TextAccessibilityManager} [accessibilityManager]\n */\n\nimport { AnnotationStorage } from './pdf-annotation-storage';\nimport { PageViewport } from './pdf-page-view-port';\nimport { PDFPageProxy } from './pdf-viewer-application';\n\nexport type AnnotationLayerBuilderOptions = {\n  pdfPage: PDFPageProxy;\n  annotationStorage?: AnnotationStorage;\n  /**\n   * - Path for image resources, mainly\n   * for annotation icons. Include trailing slash.\n   */\n  imageResourcesPath?: string;\n  renderForms: boolean;\n  linkService: any; // IPDFLinkService;\n  downloadManager?: any /*import('./interfaces').IDownloadManager */;\n  enableScripting?: boolean;\n  hasJSActionsPromise?: Promise<boolean>;\n  fieldObjectsPromise?: Promise<{\n    [x: string]: Object[];\n  } | null>;\n  annotationCanvasMap?: Map<string, HTMLCanvasElement>;\n  accessibilityManager?: any /*import('./text_accessibility.js').TextAccessibilityManager */;\n  annotationEditorUIManager?: any /* import('../src/pdf').AnnotationEditorUIManager */;\n  onAppend?: Function;\n};\n\nexport type AnnotationLayerBuilderRenderOptions = {\n  viewport: PageViewport;\n  /**\n   * - The default value is \"display\".\n   */\n  intent?: string;\n  structTreeLayer?: any /* import('./struct_tree_layer_builder.js').StructTreeLayerBuilder */;\n};\n\nexport interface AnnotationLayerBuilder {\n  pageDiv: HTMLDivElement;\n  pdfPage: PDFPageProxy;\n  annotationStorage: AnnotationStorage;\n  imageResourcesPath: string;\n  renderForms: boolean;\n  enableScripting: boolean;\n  annotationCanvasMap: Map<string, HTMLCanvasElement>;\n  render({ viewport, intent, structTreeLayer }: AnnotationLayerBuilderRenderOptions): Promise<void>;\n}\n","export const LinkTarget = {\n  NONE: 0,\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4\n};\n","export const NEED_PASSWORD = 1;\nexport const INCORRECT_PASSWORD = 2;\n\nexport interface PasswordPrompt {\n  /**\n   * Sets the callback function that, in turn, checks whether the password is correct.\n   * Close the password dialog before calling the callback function. If the password\n   * is wrong, it opens the password prompt dialog again.\n   *\n   * If you never call the callback, that's the same as clicking \"cancel\" on the password prompt.\n   * In other words, that's the way to go if you don't want to pass the password for some reason.\n   *\n   * @param updateCallback Function you can call to pass and verify the password\n   * @param reason Why is the password prompt requested?\n   * 1 = A password is required, but wasn't provided; 2 = the wrong password\n   * has been provided, so let's try again\n   */\n  setUpdateCallback(updateCallback: (password: string) => void, reason: 1 | 2): void;\n\n  close(): void;\n\n  open(): void;\n}\n","export enum SpreadMode {\n  UNKNOWN = -1,\n  NONE = 0, // Default value.\n  ODD = 1,\n  EVEN = 2,\n}\n","import { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport interface PdfDocumentInfo {\n  author?: string;\n  creationDate?: Date;\n  creator?: string;\n\n  keywords?: string;\n  linearized?: boolean;\n  maybeFileSize?: string;\n  modificationDate?: Date;\n  pdfFormatVersion?: string;\n  producer?: string;\n  subject?: string;\n  title?: string;\n}\n\nexport class PdfDocumentPropertiesExtractor {\n  private readonly 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 as any)['contentDispositionFilename']) {\n      result.fileName = (md as any)['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 = Number.parseInt(matches[1], 10);\n    let month = Number.parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = Number.parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = Number.parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = Number.parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = Number.parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || 'Z';\n    let offsetHour = Number.parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = Number.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","import { PDFPrintRange } from '../options/pdf-print-range';\n\n/**\n * Determines whether a given page index falls within the specified print range.\n *\n * @param pageIndex - Zero-based page index\n * @param pageCount - Total number of pages in the document (used for validation context)\n * @param range - The print range specification\n * @returns true if the page should be printed\n */\nexport function isInPDFPrintRange(pageIndex: number, _pageCount: number, range: PDFPrintRange): boolean {\n  const page = pageIndex + 1;\n\n  if (range.from) {\n    if (page < range.from) {\n      return false;\n    }\n  }\n  if (range.to) {\n    if (page > range.to) {\n      return false;\n    }\n  }\n  if (range.excluded) {\n    if (range.excluded.some((p) => p === page)) {\n      return false;\n    }\n  }\n  if (range.included) {\n    if (!range.included.some((p) => p === page)) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * Counts how many pages fall within the specified print range.\n *\n * @param pageCount - Total number of pages in the document\n * @param range - The print range specification\n * @returns The number of pages that match the print range\n */\nexport function filteredPageCount(pageCount: number, range: PDFPrintRange): number {\n  let result = 0;\n  for (let page = 0; page < pageCount; page++) {\n    if (isInPDFPrintRange(page, pageCount, range)) {\n      result++;\n    }\n  }\n  return result;\n}\n","/**\n * Represents a text item from PDF.js text content extraction.\n */\nexport interface TextInfoItem {\n  str: string;\n  hasEOL?: boolean;\n  type?: string;\n}\n\n/**\n * Converts an array of PDF.js text content items into a plain text string.\n *\n * Items with a `type` property (TextMarkedContent) are filtered out.\n * Items with `hasEOL` get a newline appended after their string content.\n *\n * @param textInfoItems - Array of text items from PDF.js getTextContent()\n * @returns The concatenated plain text\n */\nexport function convertTextInfoToText(textInfoItems: Array<TextInfoItem>): string {\n  if (!textInfoItems) {\n    return '';\n  }\n  return textInfoItems\n    .filter((info) => !info.type)\n    .map((info) => {\n      return info.hasEOL ? info.str + '\\n' : info.str;\n    })\n    .join('');\n}\n","/*\n * Public API Surface of ngx-extended-pdf-viewer\n */\nexport * from './lib/dynamic-css/positioning.service';\nexport * from './lib/focus-management.service';\nexport * from './lib/events/annotation-editor-layer-event';\nexport * from './lib/events/annotation-editor-layer-rendered-event';\nexport * from './lib/events/annotation-editor-mode-changed-event';\nexport * from './lib/events/annotation-layer-rendered-event';\nexport * from './lib/events/link-annotations-added-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/update-ui-state-event';\nexport * from './lib/events/xfa-layer-rendered-event';\nexport * from './lib/ngx-extended-pdf-viewer.component';\nexport * from './lib/services/ios-canvas-optimization.service';\nexport * from './lib/ngx-extended-pdf-viewer.module';\nexport * from './lib/ngx-extended-pdf-viewer.service';\nexport * from './lib/ngx-keyboard-manager.service';\nexport * from './lib/options/annotation-layer-builder';\nexport * from './lib/options/editor-annotations';\nexport * from './lib/options/link-target';\nexport * from './lib/options/ngx-console';\nexport * from './lib/options/optional_content_config';\nexport * from './lib/options/password-prompt';\nexport * from './lib/options/pdf-annotation-storage';\nexport * from './lib/options/pdf-cursor-tools';\nexport * from './lib/options/pdf-default-options';\nexport * from './lib/options/pdf-event-bus';\nexport * from './lib/options/pdf-page-info';\nexport * from './lib/options/pdf-page-view-port';\nexport * from './lib/options/pdf-print-range';\nexport * from './lib/options/pdf-print-service';\nexport * from './lib/options/pdf-scroll-mode';\nexport * from './lib/options/pdf-sidebar-views';\nexport * from './lib/options/pdf-spread-mode';\nexport * from './lib/options/pdf-viewer';\nexport * from './lib/options/pdf-viewer-app-config';\nexport * from './lib/options/pdf-viewer-application';\nexport * from './lib/options/pdf-viewer-application-options';\nexport * from './lib/options/pdf_attachment_viewer';\nexport * from './lib/options/pdf_outline_viewer';\nexport * from './lib/options/pdf_page_view';\nexport * from './lib/options/rendered-textlayer-highlights';\nexport * from './lib/options/service-worker-options';\nexport * from './lib/options/spread-type';\nexport * from './lib/options/text-layer-builder';\nexport * from './lib/options/verbosity-level';\nexport * from './lib/options/zoom-type';\nexport * from './lib/pdf-csp-policy.service';\nexport * from './lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component';\nexport * from './lib/pdf-dialog/pdf-alt-text-dialog/pdf-alt-text-dialog.component';\nexport * from './lib/pdf-dialog/pdf-alt-text-settings-dialog/pdf-alt-text-settings-dialog.component';\nexport * from './lib/pdf-dialog/pdf-comment-manager-dialog/pdf-comment-manager-dialog.component';\nexport * from './lib/pdf-dialog/pdf-document-properties-dialog/pdf-document-properties-dialog.component';\nexport * from './lib/pdf-dialog/pdf-edit-signature-dialog/pdf-edit-signature-dialog.component';\nexport * from './lib/pdf-dialog/pdf-error-message/pdf-error-message.component';\nexport * from './lib/pdf-dialog/pdf-password-dialog/pdf-password-dialog.component';\nexport * from './lib/pdf-dialog/pdf-prepare-printing-dialog/pdf-prepare-printing-dialog.component';\nexport * from './lib/pdf-dummy-components/pdf-dummy-components.component';\nexport * from './lib/pdf-document-properties-extractor';\nexport * from './lib/pdf-notification-service';\nexport * from './lib/pdf-script-loader.service';\nexport * from './lib/responsive-visibility';\nexport * from './lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar.component';\nexport * from './lib/theme/acroform-default-theme/pdf-acroform-default-theme.component';\nexport * from './lib/theme/pdf-dark-theme/pdf-dark-theme.component';\nexport * from './lib/theme/pdf-light-theme/pdf-light-theme.component';\nexport * from './lib/toolbar/pdf-book-mode/pdf-book-mode.component';\nexport * from './lib/toolbar/pdf-comment-editor/pdf-comment-editor.component';\nexport * from './lib/toolbar/pdf-context-menu/pdf-context-menu.component';\nexport * from './lib/toolbar/pdf-document-properties/pdf-document-properties.component';\nexport * from './lib/toolbar/pdf-download/pdf-download.component';\nexport * from './lib/toolbar/pdf-draw-editor/pdf-draw-editor.component';\nexport * from './lib/toolbar/pdf-editor-signature/pdf-editor-signature.component';\nexport * from './lib/toolbar/pdf-editor/pdf-editor.component';\nexport * from './lib/toolbar/pdf-even-spread/pdf-even-spread.component';\nexport * from './lib/toolbar/pdf-find-button/pdf-find-button.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nexport * from './lib/toolbar/pdf-hand-tool/pdf-hand-tool.component';\nexport * from './lib/toolbar/pdf-page-flip-tool/pdf-page-flip-tool.component';\nexport * from './lib/toolbar/pdf-highlight-editor/pdf-highlight-editor.component';\nexport * from './lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component';\nexport * from './lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component';\nexport * from './lib/toolbar/pdf-move-down/pdf-move-down.component';\nexport * from './lib/toolbar/pdf-move-up/pdf-move-up.component';\nexport * from './lib/toolbar/pdf-no-spread/pdf-no-spread.component';\nexport * from './lib/toolbar/pdf-odd-spread/pdf-odd-spread.component';\nexport * from './lib/toolbar/pdf-open-file/pdf-open-file.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-paging-area.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nexport * from './lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nexport * from './lib/toolbar/pdf-print/pdf-print.component';\nexport * from './lib/toolbar/pdf-rotate-page/pdf-rotate-page.component';\nexport * from './lib/toolbar/pdf-select-tool/pdf-select-tool.component';\nexport * from './lib/toolbar/pdf-shy-button/pdf-shy-button.component';\nexport * from './lib/toolbar/pdf-single-page-mode/pdf-single-page-mode.component';\nexport * from './lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component';\nexport * from './lib/toolbar/pdf-text-editor/pdf-text-editor.component';\nexport * from './lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nexport * from './lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nexport * from './lib/toolbar/pdf-toolbar/pdf-toolbar.component';\nexport * from './lib/toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component';\nexport * from './lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\nexport * from './lib/utils/blob-conversion';\nexport * from './lib/utils/print-range';\nexport * from './lib/utils/text-conversion';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.PDFNotificationService","i1.PdfCspPolicyService","i2.PdfFindNextComponent","i3.PdfFindPreviousComponent","i4.PdfSearchInputFieldComponent","i2.PdfFindbarMessageContainerComponent","i3.PdfFindEntireWordComponent","i4.PdfFindHighlightAllComponent","i5.PdfFindInputAreaComponent","i6.PdfFindMatchCaseComponent","i7.PdfFindMultipleComponent","i8.PdfFindRegExpComponent","i9.PdfFindResultsCountComponent","i10.PdfMatchDiacriticsComponent","i1","i2.PdfShyButtonService","i3.NgxExtendedPdfViewerService","i4","i5.NegativeResponsiveCSSClassPipe","i6.SanitizedHtmlPipe","i2.PdfSidebarContentComponent","i3.PdfSidebarToolbarComponent","i1.PdfShyButtonService","i2.PDFNotificationService","i3.PdfCspPolicyService","i1.PdfShyButtonComponent","i2.ResponsiveCSSClassPipe","i2.FocusManagementService","i3.PdfShyButtonComponent","i4.ResponsiveCSSClassPipe","i1.PdfCommentEditorComponent","i2.PdfDrawEditorComponent","i3.PdfEditorSignatureComponent","i4.PdfHighlightEditorComponent","i5.PdfStampEditorComponent","i6.PdfTextEditorComponent","i2.PdfShyButtonComponent","i3.ResponsiveCSSClassPipe","i1.ResponsiveCSSClassPipe","i1.PdfFirstPageComponent","i2.PdfLastPageComponent","i3.PdfNextPageComponent","i4.PdfPageNumberComponent","i5.PdfPreviousPageComponent","i6.ResponsiveCSSClassPipe","i1.NgxExtendedPdfViewerService","i1.PdfZoomDropdownComponent","i2.PdfZoomInComponent","i3.PdfZoomOutComponent","i2.PdfBookModeComponent","i3.PdfDocumentPropertiesComponent","i4.PdfDownloadComponent","i5.PdfEditorComponent","i6.PdfEvenSpreadComponent","i7.PdfFindButtonComponent","i8.PdfHandToolComponent","i9.PdfPageFlipToolComponent","i10.PdfHorizontalScrollComponent","i11.PdfInfiniteScrollComponent","i12.PdfMoveDownComponent","i13.PdfMoveUpComponent","i14.PdfNoSpreadComponent","i15.PdfOddSpreadComponent","i16.PdfOpenFileComponent","i17.PdfPagingAreaComponent","i18.PdfPresentationModeComponent","i19.PdfPrintComponent","i20.PdfRotatePageCwComponent","i21.PdfRotatePageCcwComponent","i22.PdfSelectToolComponent","i23.PdfSinglePageModeComponent","i24.PdfToggleSecondaryToolbarComponent","i25.PdfToggleSidebarComponent","i26.PdfVerticalScrollModeComponent","i27.PdfWrappedScrollModeComponent","i28.PdfZoomToolbarComponent","i2","i4.PDFScriptLoaderService","i5.NgxKeyboardManagerService","i6.PdfCspPolicyService","i7.IOSCanvasOptimizationService","i8.DynamicCssComponent","i9.PdfAcroformDefaultThemeComponent","i10.AddSignatureDialogComponent","i11.PdfCommentManagerDialogComponent","i12.PdfContextMenuComponent","i13.PdfDarkThemeComponent","i14.PdfAltTextDialogComponent","i15.PdfAltTextSettingsDialogComponent","i16.PdfDocumentPropertiesDialogComponent","i17.PdfDummyComponentsComponent","i18.EditSignatureDialogComponent","i19.PdfErrorMessageComponent","i20.PdfFindbarComponent","i21.PdfLightThemeComponent","i22.PdfPasswordDialogComponent","i23.PdfPreparePrintingDialogComponent","i24.PdfSecondaryToolbarComponent","i25.PdfSidebarComponent","i26.PdfToolbarComponent","i27.TranslatePipe","PdfAddSignatureDialogComponent","PdfEditSignatureDialogComponent"],"mappings":"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"}