{"version":3,"file":"ngx-extended-pdf-viewer.mjs","sources":["../../../projects/ngx-extended-pdf-viewer/src/lib/options/editor-annotations.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-default-options.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/positioning.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/focus-management.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/events/find-result.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-cursor-tools.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-viewer.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/verbosity-level.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dummy-components/pdf-dummy-components.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dummy-components/pdf-dummy-components.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-form-support.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/options/pdf-sidebar-views.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-notification-service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-extended-pdf-viewer.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-csp-policy.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-script-loader.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/ngx-keyboard-manager.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/services/ios-canvas-optimization.service.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/responsive-visibility.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/unit-to-px.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/dynamic-css/dynamic-css.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/theme/acroform-default-theme/pdf-acroform-default-theme.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component.ts","../../../projects/ngx-extended-pdf-viewer/src/lib/pdf-dialog/pdf-add-signature-dialog/pdf-add-signature-dialog.component.html","../../../projects/ngx-extended-pdf-viewer/src/lib/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/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/blob-conversion.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\n};\n\nexport type FreeTextEditorAnnotation = {\n  annotationType: 3;\n  color: Array<number>; // an array of three integer numbers\n  fontSize: number;\n  value: string;\n  pageIndex: number;\n  rect: Array<number>; // rect[1] is the y position; rect[2] is the x position\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type StampEditorAnnotation = {\n  annotationType: 13;\n  pageIndex: number;\n  bitmapUrl: string | Blob;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type HighlightEditorAnnotation = {\n  annotationType: 9;\n  color: Array<number>; // an array of three integer numbers\n  opacity: number;\n  thickness: number;\n  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\n};\n\nexport type PopupEditorAnnotation = {\n  annotationType: 16;\n  content: string;\n  pageIndex: number;\n  rect: Array<number>; // [left, bottom, right, top]\n  rotation: 0 | 90 | 180 | 270; // in degrees\n  isCopy?: boolean;\n  id?: string; // #3076 added by ngx-extended-pdf-viewer\n};\n\nexport type EditorAnnotation = InkEditorAnnotation | FreeTextEditorAnnotation | StampEditorAnnotation | HighlightEditorAnnotation | PopupEditorAnnotation;\n","import { AnnotationMode } from './editor-annotations';\n\nconst _isIE11 = typeof window === 'undefined' ? false : !!(<any>globalThis).MSInputMethodContext && !!(<any>document).documentMode;\nconst isEdge = typeof navigator === 'undefined' || /Edge\\/\\d./i.test(navigator.userAgent);\nconst needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n\nexport const pdfjsVersion = '5.4.1412';\nexport const pdfjsBleedingEdgeVersion = '5.4.1412';\nexport function getVersionSuffix(folder: string): string {\n  if (folder?.includes('bleeding-edge')) {\n    return pdfjsBleedingEdgeVersion;\n  }\n  return pdfjsVersion;\n}\n\nexport function assetsUrl(url: string, postfixIfPathIsRelativ = ''): string {\n  if (url.includes('://')) {\n    // the assets folder is on an absolute path (like https://example.com/assets)\n    return url;\n  }\n  return `./${url + postfixIfPathIsRelativ}`;\n}\n\nexport function isBleedingEdge(): boolean {\n  return pdfDefaultOptions.assetsFolder?.includes('bleeding-edge');\n}\n\ndeclare const process: any;\n\nfunction isTestEnvironment(): boolean {\n  return (\n    typeof process !== 'undefined' &&\n    typeof (process as any).env !== 'undefined' &&\n    ((process as any).env.NODE_ENV === 'test' || (process as any).env.JEST_WORKER_ID !== undefined || (process as any).env.VITEST !== undefined)\n  );\n}\n\nexport function getSafeCanvasSize(): number {\n  if (typeof window === 'undefined' || typeof document === 'undefined' || isTestEnvironment()) {\n    return 4096;\n  }\n\n  // Use PDF.js defaults for maximum compatibility\n  // The IOSCanvasOptimizationService handles dynamic optimization\n  const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n  const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n\n  if (isIOS || isMobile) {\n    return 5242880; // PDF.js iOS/Android limit (5 megapixels)\n  }\n\n  return 33554432; // PDF.js desktop default (32 megapixels)\n}\n\n// sonar ignore next line\nexport const pdfDefaultOptions = {\n  needsES5: _isIE11 || isEdge || needsES5,\n  annotationEditorMode: 0,\n  annotationMode: AnnotationMode.ENABLE_FORMS,\n  defaultZoomDelay: 400, // milliseconds\n  cursorToolOnLoad: 0,\n  defaultUrl: '',\n  defaultZoomValue: '',\n  disableHistory: false,\n  disablePageLabels: false,\n  enableComment: true,\n  enablePermissions: false,\n  docBaseUrl: '',\n  enablePrintAutoRotate: true,\n  enableSignatureEditor: false,\n  externalLinkRel: 'noopener noreferrer nofollow',\n  externalLinkTarget: 0,\n  findController: undefined, // must extend PDFFindController\n  historyUpdateUrl: false,\n  ignoreDestinationZoom: false,\n  imageResourcesPath: './images/',\n  maxCanvasPixels: getSafeCanvasSize(),\n  forcePageColors: false,\n  pageColorsBackground: 'Canvas',\n  pageColorsForeground: 'CanvasText',\n  pdfBugEnabled: false,\n  printResolution: 150,\n  rangeChunkSize: 65536,\n  removePageBorders: false,\n  enableXfa: true,\n  fontExtraProperties: false,\n  sidebarViewOnLoad: -1,\n  scrollModeOnLoad: -1,\n  spreadModeOnLoad: -1,\n  textLayerMode: 1,\n  // viewerCssTheme: 0, // not supported by ngx-extended-pdf-viewer, use [theme] instead\n  viewOnLoad: 0,\n  cMapPacked: true,\n  cMapUrl: function () {\n    return `${assetsUrl(pdfDefaultOptions.assetsFolder, '/..')}/cmaps/`;\n  },\n  disableAutoFetch: false,\n  disableFontFace: false,\n  disableRange: false,\n  disableStream: true,\n  isEvalSupported: true,\n  isOffscreenCanvasSupported: true,\n  maxImageSize: -1,\n  pdfBug: false,\n  verbosity: 1,\n  workerPort: null,\n  assetsFolder: 'assets',\n  _internalFilenameSuffix: '.min', // don't modify this - it's an internal field\n  sandboxBundleSrc: function () {\n    return pdfDefaultOptions.needsES5\n      ? `./pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.mjs`\n      : `./pdf.sandbox-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}${pdfDefaultOptions._internalFilenameSuffix}.mjs`;\n  },\n  workerSrc: function () {\n    return pdfDefaultOptions.needsES5\n      ? `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.worker-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}-es5.mjs`\n      : `${assetsUrl(pdfDefaultOptions.assetsFolder)}/pdf.worker-${getVersionSuffix(assetsUrl(pdfDefaultOptions.assetsFolder))}${\n          pdfDefaultOptions._internalFilenameSuffix\n        }.mjs`;\n  },\n  standardFontDataUrl: () => `${assetsUrl(pdfDefaultOptions.assetsFolder, '/..')}/standard_fonts/`,\n  wasmUrl: () => `${assetsUrl(pdfDefaultOptions.assetsFolder, '/..')}/wasm/`,\n\n  // options specific to ngx-extended-pdf-viewer (as opposed to being used by pdf.js)\n  doubleTapZoomFactor: 'page-width',\n  doubleTapZoomsInHandMode: true,\n  doubleTapZoomsInTextSelectionMode: false,\n  doubleTapResetsZoomOnSecondDoubleTap: false,\n  enableScripting: false,\n  enableCatalogAAJavaScript: false,\n  enableOpenActionJavaScript: false,\n  defaultCacheSize: 50,\n  passwordPrompt: undefined,\n  enableHWA: true, // enable hardware acceleration. Active since pdf.js 4.4.\n  positionPopupDialogsWithJavaScript: true,\n  enablePageReordering: false, // allows users to reorder pages by dragging thumbnails,\n  pdfBackgroundColor: '', // background color for PDF content rendering\n};\n","import { pdfDefaultOptions } from '../options/pdf-default-options';\n\nexport class PositioningService {\n  private static readonly DOORHANGER_OFFSET = 17;\n  private static readonly TOOLBAR_MARGIN = 4;\n\n  // 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.left = `${buttonRect.left - containerRect.left + centerOffset}px`;\n      popup.style.right = '';\n    } else {\n      popup.style.right = `${containerRect.right - buttonRect.right + centerOffset}px`;\n      popup.style.left = '';\n    }\n  }\n\n  private setVerticalPosition(popup: HTMLElement, containerRect: DOMRect): void {\n    const toolbarContainer = document.querySelector<HTMLElement>('#toolbarContainer');\n    if (!toolbarContainer) return;\n\n    const toolbarRect = toolbarContainer.getBoundingClientRect();\n    const top = toolbarRect.bottom - containerRect.top + PositioningService.TOOLBAR_MARGIN;\n    popup.style.top = `${top}px`;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FocusManagementService {\n  private previousActiveElement: HTMLElement | null = null;\n  private ariaLiveRegion: HTMLDivElement | null = null;\n  private 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 = window.getComputedStyle(element);\n    return style.display !== 'none' && style.visibility !== 'hidden' && element.offsetParent !== null;\n  }\n}\n","export enum FindState {\n  FOUND = 0,\n  NOT_FOUND = 1,\n  WRAPPED = 2,\n  PENDING = 3,\n}\n\nexport interface FindResultMatchesCount {\n  current: number;\n  total: number;\n  matches: Array<any>;\n  matchesLength: Array<any>;\n  caseSensitive: boolean;\n  entireWord: boolean;\n  findPrevious: boolean;\n  highlightAll: boolean;\n  matchDiacritics: boolean;\n  query: string | string[] | RegExp;\n  type: 'findagain' | 'highlightallchange' | 'casesensitivitychange' | 'entirewordchange' | 'diacriticmatchingchange' | 'find';\n}\n\nexport interface FindResult {\n  state: FindState;\n  previous: any;\n  matchesCount: FindResultMatchesCount;\n  rawquery: string;\n}\n","export enum PdfCursorTools {\n  SELECT = 0,\n  HAND = 1,\n  ZOOM = 2\n}\n","import { EditorAnnotation } from './editor-annotations';\nimport { OptionalContentConfig } from './optional_content_config';\nimport { PDFPageView } from './pdf_page_view';\n\nexport enum ScrollModeType {\n  vertical = 0,\n  horizontal = 1,\n  wrapped = 2,\n  page = 3,\n}\n\nexport enum SpreadModeType {\n  UNKNOWN = -1,\n  NONE = 0, // Default value.\n  ODD = 1,\n  EVEN = 2,\n}\n\nexport type PageViewModeType = 'single' | 'book' | 'multiple' | 'infinite-scroll';\n\nexport interface ScrollModeChangedEvent {\n  mode: ScrollModeType;\n}\nexport interface IPDFRenderingQueue {\n  getHighestPriority(visiblePage: Array<any>, pages: Array<any>, scrolledDown: boolean, preRenderExtra: boolean): 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}\n","export enum VerbosityLevel {\n  ERRORS = 0,\n  WARNINGS = 1,\n  INFOS = 5,\n}\n","import { Component } from '@angular/core';\n\n/** List of all fields that can be customized */\nconst requiredIds = [\n  'attachmentsView',\n  'authorField',\n  'contextFirstPage',\n  'contextLastPage',\n  'contextPageRotateCcw',\n  'contextPageRotateCw',\n  'creationDateField',\n  'creatorField',\n  'currentOutlineItem',\n  'cursorHandTool',\n  'cursorSelectTool',\n  'customScaleOption',\n  'documentProperties',\n  'documentPropertiesClose',\n  'download',\n  'editorSignatureButton',\n  'primaryEditorFreeText',\n  'primaryEditorHighlight',\n  'primaryEditorInk',\n  'primaryEditorStamp',\n  'editorModeButtons',\n  'editorNone',\n  //  'editorSignatureButton',\n  //  'editorSignatureAddSignature',\n  'editorStampAddImage',\n  'errorClose',\n  'errorMessage',\n  'errorMoreInfo',\n  'errorShowLess',\n  'errorShowMore',\n  'errorWrapper',\n  'fileNameField',\n  'fileSizeField',\n  'findbar',\n  'findCurrentPage',\n  'findEntireWord',\n  'findFuzzy',\n  'findHighlightAll',\n  'findIgnoreAccents',\n  'findInput',\n  'findInputMultiline',\n  'findMatchCase',\n  'findMatchDiacritics',\n  'findMsg',\n  'findMultipleSearchTexts',\n  'findNext',\n  'findPrevious',\n  'findRange',\n  'findResultsCount',\n  'firstPage',\n  'individualWordsMode',\n  'individualWordsModeLabel',\n  'keywordsField',\n  'lastPage',\n  'linearizedField',\n  'modificationDateField',\n  'movePageUpButton',\n  'movePageDownButton',\n  'next',\n  'numPages',\n  'openFile',\n  'outerContainer',\n  'outerContainer',\n  'outlineOptionsContainer',\n  'outlineView',\n  'pageCountField',\n  'pageNumber',\n  'pageRotateCcw',\n  'pageRotateCw',\n  'pageSizeField',\n  'password',\n  'passwordCancel',\n  'passwordSubmit',\n  'passwordText',\n  'presentationMode',\n  'previous',\n  'printButton',\n  'producerField',\n  'scaleSelect',\n  'scaleSelectContainer',\n  'scrollHorizontal',\n  'scrollPage',\n  'scrollVertical',\n  'scrollWrapped',\n  'secondaryDownload',\n  'secondaryOpenFile',\n  'secondaryPresentationMode',\n  'secondaryPrintButton',\n  'secondaryToolbar',\n  'secondaryToolbarButtonContainer',\n  'secondaryToolbarToggle',\n  'secondaryViewBookmark',\n  'sidebarResizer',\n  'primarySidebarToggle',\n  'spreadEven',\n  'spreadNone',\n  'spreadOdd',\n  'subjectField',\n  'thumbnailView',\n  'titleField',\n  'toolbarViewer',\n  'versionField',\n  'viewAttachments',\n  'viewAttachments',\n  'viewBookmark',\n  'viewerContainer',\n  'viewFind',\n  'viewLayers',\n  'viewOutline',\n  'viewOutline',\n  'viewThumbnail',\n  'viewThumbnail',\n  'primaryZoomIn',\n  'primaryZoomOut',\n];\n\n@Component({\n    selector: 'pdf-dummy-components',\n    templateUrl: './pdf-dummy-components.component.html',\n    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        container.removeChild(child);\n      }\n    }\n\n    requiredIds.forEach((id) => {\n      if (this.needsDummyWidget(id)) {\n        const dummy = document.createElement('span');\n        dummy.id = id;\n        dummy.className = 'invisible dummy-component';\n        this.dummyComponentsContainer.appendChild(dummy);\n      }\n    });\n\n    if (this.needsDummyWidget('scaleSelect')) {\n      const dummy = document.createElement('select');\n      dummy.id = 'scaleSelect';\n      dummy.className = 'invisible dummy-component';\n      this.dummyComponentsContainer.appendChild(dummy);\n    }\n  }\n\n  private needsDummyWidget(id: string): boolean {\n    const widget = document.getElementById(id);\n    if (!widget) {\n      return true;\n    }\n    return false;\n  }\n}\n","<span class=\"invisible dummy-pdf-viewer-components\">\n</span>\n","import { ChangeDetectorRef, EventEmitter, NgZone } from '@angular/core';\nimport { FormDataType } from './ngx-extended-pdf-viewer.component';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\nexport type HtmlFormElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\nexport class NgxFormSupport {\n  /** Maps the internal ids of the annotations of pdf.js to their field name */\n  private formIdToFullFieldName: { [key: string]: string } = {};\n\n  private formIdToField: { [key: string]: HtmlFormElement } = {};\n\n  private radioButtons: { [key: string]: Array<HTMLInputElement> } = {};\n\n  public formData: FormDataType = {};\n\n  public initialFormDataStoredInThePDF: FormDataType = {};\n\n  public formDataChange = new EventEmitter<FormDataType>();\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  public ngZone!: NgZone; // set during the initializaion of the PDF viewer\n\n  public cdr!: ChangeDetectorRef; // set during the initializaion of the PDF viewer\n\n  public reset() {\n    this.formData = {};\n    this.formIdToFullFieldName = {};\n  }\n\n  public registerFormSupportWithPdfjs(PDFViewerApplication: IPDFViewerApplication): void {\n    this.PDFViewerApplication = PDFViewerApplication;\n    (globalThis as any).getFormValueFromAngular = (key: string) => this.getFormValueFromAngular(key);\n    (globalThis as any).updateAngularFormValue = (key: string | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement, value: { value: string }) =>\n      this.updateAngularFormValueCalledByPdfjs(key, value);\n    (globalThis as any).registerAcroformField = (\n      id: string,\n      element: HtmlFormElement,\n      value: string | Array<string>,\n      radioButtonValueName: string,\n      initialValueFromPDF: string,\n    ) => this.registerAcroformField(id, element, value, radioButtonValueName, initialValueFromPDF);\n\n    (globalThis as any).registerXFAField = (element: HtmlFormElement, value: { value: string }, initialValueFromPDF: string) =>\n      this.registerXFAField(element, value, initialValueFromPDF);\n  }\n\n  private registerAcroformField(\n    id: string,\n    element: HtmlFormElement,\n    value: null | string | Array<string>,\n    radioButtonValueName: string,\n    initialFormValueFromPDF: string,\n  ): void {\n    const fieldName = element.name;\n    this.formIdToField[id] = element;\n    this.formIdToFullFieldName[id] = fieldName;\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      const groupName = fieldName;\n      this.formIdToFullFieldName[id] = groupName;\n      if (value) {\n        this.formData[groupName] = radioButtonValueName;\n        this.initialFormDataStoredInThePDF[groupName] = initialFormValueFromPDF;\n      }\n      element.setAttribute('exportValue', radioButtonValueName);\n      if (!this.radioButtons[groupName]) {\n        this.radioButtons[groupName] = [];\n      }\n      this.radioButtons[groupName].push(element);\n    } else if (element instanceof HTMLSelectElement) {\n      this.formData[fieldName] = this.getValueOfASelectField(element);\n      this.initialFormDataStoredInThePDF[fieldName] = initialFormValueFromPDF;\n    } else {\n      if (value !== undefined) {\n        this.formData[fieldName] = value;\n      }\n      this.initialFormDataStoredInThePDF[fieldName] = initialFormValueFromPDF;\n    }\n  }\n\n  private registerXFAField(element: HTMLElement, value: { value: string }, initialFormValueFromPDF: string): void {\n    const fullFieldName = this.findFullXFAName(element);\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      const id = element.getAttribute('fieldid') ?? '';\n      // remove the xfa name of the radio button itself form the field name,\n      // because the field name refers to the entire group of relatated radio buttons\n      const groupName = fullFieldName.substring(0, fullFieldName.lastIndexOf('.'));\n      this.formIdToFullFieldName[id] = groupName;\n      this.formData[groupName] = value?.value;\n      this.initialFormDataStoredInThePDF[groupName] = initialFormValueFromPDF;\n\n      if (!this.radioButtons[groupName]) {\n        this.radioButtons[groupName] = [];\n      }\n      this.radioButtons[groupName].push(element);\n    } else if (element instanceof HTMLInputElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else if (element instanceof HTMLSelectElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else if (element instanceof HTMLTextAreaElement) {\n      const id = element.getAttribute('fieldid') ?? '';\n      this.formIdToField[id] = element;\n      this.formIdToFullFieldName[id] = fullFieldName;\n      this.formData[fullFieldName] = value?.value;\n      this.initialFormDataStoredInThePDF[fullFieldName] = initialFormValueFromPDF;\n    } else {\n      console.error(\"Couldn't register an XFA form field\", element);\n    }\n  }\n\n  private getValueOfASelectField(selectElement: HTMLSelectElement): null | string | Array<string> {\n    const { options, multiple } = selectElement;\n    if (!multiple) {\n      return options.selectedIndex === -1 ? null : options[options.selectedIndex]['value'];\n    }\n    return Array.prototype.filter.call(options, (option) => option.selected).map((option) => option['value']);\n  }\n\n  private getFormValueFromAngular(element: HTMLElement | string): Object {\n    let key: string;\n    if (element instanceof HTMLElement) {\n      const fieldName = this.findXFAName(element);\n      if (fieldName) {\n        if (this.formData.hasOwnProperty(fieldName)) {\n          key = fieldName;\n        } else {\n          key = this.findFullXFAName(element);\n        }\n      } else {\n        console.error(\"Couldn't find the field name or XFA name of the form field\", element);\n        return { value: null };\n      }\n    } else {\n      key = element;\n    }\n    return { value: this.formData[key] };\n  }\n\n  private findXFAName(element: HTMLElement): string {\n    let parentElement: HTMLElement | null | undefined = element;\n    while (!parentElement.getAttribute('xfaname') && parentElement.parentElement) {\n      parentElement = parentElement.parentElement;\n    }\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      do {\n        parentElement = parentElement?.parentElement;\n      } while (!parentElement?.getAttribute('xfaname') && parentElement);\n    }\n    let fieldName = parentElement?.getAttribute('xfaname');\n    if (!fieldName) {\n      throw new Error(\"Couldn't find the xfaname of the field\");\n    }\n    return fieldName;\n  }\n\n  private findFullXFAName(element: HTMLElement): string {\n    let parentElement = element;\n    let fieldName = '';\n    while (parentElement instanceof HTMLElement && parentElement.parentElement) {\n      const xfaName = parentElement.getAttribute('xfaname');\n      if (xfaName) {\n        fieldName = xfaName + '.' + fieldName;\n      }\n      parentElement = parentElement.parentElement;\n    }\n    if (!fieldName) {\n      throw new Error(\"Couldn't find the xfaname of the field\");\n    }\n    fieldName = fieldName.substring(0, fieldName.length - 1);\n    if (element instanceof HTMLInputElement && element.type === 'radio') {\n      // ignore the last part of the xfaName because it's actually the value of the field\n      return fieldName.substring(0, fieldName.lastIndexOf('.'));\n    }\n    return fieldName;\n  }\n\n  private updateAngularFormValueCalledByPdfjs(\n    key: string | HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement,\n    value: { value?: string; formattedValue?: string },\n  ): void {\n    if (!this.formData) {\n      this.formData = {};\n    }\n\n    // Ignore formattedValue-only updates to prevent clearing Angular form data\n    // The formattedValue is just for display formatting, not actual user input\n    if (value.formattedValue !== undefined && value.value === undefined) {\n      return;\n    }\n\n    if (typeof key === 'string') {\n      const acroFormKey = this.formIdToFullFieldName[key];\n      const fullKey = acroFormKey ?? Object.values(this.formIdToFullFieldName).find((k) => k === key || k.endsWith('.' + key));\n      if (fullKey) {\n        const field = this.formIdToField[key];\n        let change = this.doUpdateAngularFormValue(field, value, fullKey);\n        if (change) {\n          this.ngZone.run(() => {\n            this.formDataChange.emit(this.formData);\n            this.cdr.detectChanges();\n          });\n        }\n      } else {\n        console.error(\"Couldn't find the field with the name \" + key);\n      }\n    } else {\n      let change = false;\n      const shortFieldName = this.findXFAName(key);\n      if (this.formData.hasOwnProperty(shortFieldName)) {\n        change = this.doUpdateAngularFormValue(key, value, shortFieldName);\n      }\n      const fullFieldName = this.findFullXFAName(key);\n      if (fullFieldName !== shortFieldName) {\n        change ||= this.doUpdateAngularFormValue(key, value, fullFieldName);\n      }\n      if (change) {\n        this.ngZone.run(() => {\n          this.formDataChange.emit(this.formData);\n          this.cdr.detectChanges();\n        });\n      }\n    }\n  }\n\n  private doUpdateAngularFormValue(field: HtmlFormElement, value: { value?: string; formattedValue?: string }, fullKey: string) {\n    let change = false;\n    // Use the actual user input value, not the formatted display value\n    const actualValue = value.value;\n    if (field instanceof HTMLInputElement && field.type === 'checkbox') {\n      const exportValue = field.getAttribute('exportvalue');\n      if (exportValue) {\n        if (actualValue) {\n          if (this.formData[fullKey] !== exportValue) {\n            this.formData[fullKey] = exportValue;\n            change = true;\n          }\n        } else {\n          if (this.formData[fullKey] !== false) {\n            this.formData[fullKey] = false;\n            change = true;\n          }\n        }\n      } else if (this.formData[fullKey] !== actualValue) {\n        this.formData[fullKey] = actualValue ?? '';\n        change = true;\n      }\n    } else if (field instanceof HTMLInputElement && field.type === 'radio') {\n      const exportValue = field.getAttribute('exportvalue') ?? field.getAttribute('xfaon');\n      if (actualValue) {\n        if (this.formData[fullKey] !== exportValue) {\n          this.formData[fullKey] = exportValue;\n          change = true;\n        }\n      }\n    } else if (this.formData[fullKey] !== actualValue) {\n      this.formData[fullKey] = actualValue ?? '';\n      change = true;\n    }\n    return change;\n  }\n\n  public updateFormFieldsInPdfCalledByNgOnChanges(previousFormData: Object) {\n    if (!this.PDFViewerApplication?.pdfDocument?.annotationStorage) {\n      // ngOnChanges calls this method too early - so just ignore it\n      return;\n    }\n\n    for (const key in this.formData) {\n      if (this.formData.hasOwnProperty(key)) {\n        const newValue = (this.formData 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","export enum PdfSidebarView {\n  UNKNOWN = -1,\n  NONE = 0,\n  THUMBS = 1, // Default value.\n  OUTLINE = 2,\n  ATTACHMENTS = 3,\n  LAYERS = 4,\n}\n","import { Injectable, effect, signal } from '@angular/core';\nimport { getVersionSuffix, pdfDefaultOptions } from './options/pdf-default-options';\nimport { IPDFViewerApplication } from './options/pdf-viewer-application';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PDFNotificationService {\n  // this event is fired when the pdf.js library has been loaded and objects like PDFApplication are available\n  public onPDFJSInitSignal = signal<IPDFViewerApplication | undefined>(undefined);\n\n  public pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n\n  public constructor() {\n    effect(() => {\n      if (this.onPDFJSInitSignal()) {\n        this.pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n      }\n    });\n  }\n}\n","import { effect, Injectable, Renderer2, RendererFactory2, signal } from '@angular/core';\nimport { AnnotationEditorParamsType, AnnotationMode, EditorAnnotation, HighlightEditorAnnotation, StampEditorAnnotation } from './options/editor-annotations';\nimport { PdfLayer } from './options/optional_content_config';\nimport { PDFPrintRange } from './options/pdf-print-range';\nimport { IPDFViewerApplication, PDFDocumentProxy, PDFFindParameters, PDFPageProxy, TextItem, TextMarkedContent } from './options/pdf-viewer-application';\nimport { ZoomType } from './options/zoom-type';\nimport { PDFNotificationService } from './pdf-notification-service';\n\nexport interface FindOptions {\n  highlightAll?: boolean;\n  matchCase?: boolean;\n  wholeWords?: boolean;\n  matchDiacritics?: boolean;\n  dontScrollIntoView?: boolean;\n  findMultiple?: boolean;\n  regexp?: boolean;\n  useSecondaryFindcontroller?: boolean;\n}\n\ninterface DrawContext {\n  ctx: CanvasRenderingContext2D;\n  canvas: HTMLCanvasElement;\n}\n\nexport interface PDFExportScaleFactor {\n  width?: number;\n  height?: number;\n  scale?: number;\n}\n\ntype DirectionType = 'ltr' | 'rtl' | 'both' | undefined;\n\nexport interface PdfImageParameters {\n  urlOrDataUrl: string;\n  page?: number;\n  left?: number | string;\n  bottom?: number | string;\n  right?: number | string;\n  top?: number | string;\n  rotation?: 0 | 90 | 180 | 270;\n}\n\nexport interface Line {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  direction: DirectionType;\n  text: string;\n}\nexport interface Section {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n  direction: DirectionType;\n  lines: Array<Line>;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxExtendedPdfViewerService {\n  public ngxExtendedPdfViewerInitialized = false;\n\n  public secondaryMenuIsEmpty = signal(false);\n\n  private readonly renderer: Renderer2;\n  private PDFViewerApplication?: IPDFViewerApplication;\n\n  constructor(\n    private readonly rendererFactory: RendererFactory2,\n    notificationService: PDFNotificationService,\n  ) {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public find(text: string | string[] | RegExp, options: FindOptions = {}): Array<Promise<number>> | undefined {\n    if (!this.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call find() later.\");\n      return undefined;\n    } else {\n      if (!options.useSecondaryFindcontroller) {\n        const highlightAllCheckbox = document.getElementById('findHighlightAll') as HTMLInputElement;\n        if (highlightAllCheckbox) {\n          highlightAllCheckbox.checked = options.highlightAll ?? false;\n        }\n\n        const matchCaseCheckbox = document.getElementById('findMatchCase') as HTMLInputElement;\n        if (matchCaseCheckbox) {\n          matchCaseCheckbox.checked = options.matchCase ?? false;\n        }\n\n        const findMultipleCheckbox = document.getElementById('findMultiple') as HTMLInputElement;\n        if (findMultipleCheckbox) {\n          findMultipleCheckbox.checked = options.findMultiple ?? false;\n        }\n\n        const entireWordCheckbox = document.getElementById('findEntireWord') as HTMLInputElement;\n        if (entireWordCheckbox) {\n          entireWordCheckbox.checked = options.wholeWords ?? false;\n        }\n\n        const matchDiacriticsCheckbox = document.getElementById('findMatchDiacritics') as HTMLInputElement;\n        if (matchDiacriticsCheckbox) {\n          matchDiacriticsCheckbox.checked = options.matchDiacritics ?? false;\n        }\n\n        const matchRegExpCheckbox = document.getElementById('matchRegExp') as HTMLInputElement;\n        if (matchRegExpCheckbox) {\n          matchRegExpCheckbox.checked = options.regexp ?? false;\n          if (matchRegExpCheckbox.checked) {\n            if (findMultipleCheckbox) {\n              findMultipleCheckbox.checked = false;\n            }\n            if (entireWordCheckbox) {\n              entireWordCheckbox.checked = false;\n            }\n\n            if (matchDiacriticsCheckbox) {\n              matchDiacriticsCheckbox.checked = false;\n            }\n          }\n          if (findMultipleCheckbox) {\n            findMultipleCheckbox.disabled = matchRegExpCheckbox.checked;\n          }\n          if (entireWordCheckbox) {\n            entireWordCheckbox.disabled = matchRegExpCheckbox.checked;\n          }\n\n          if (matchDiacriticsCheckbox) {\n            matchDiacriticsCheckbox.disabled = matchRegExpCheckbox.checked;\n          }\n        }\n\n        const inputField = document.getElementById('findInput') as HTMLInputElement;\n        if (inputField && typeof text === 'string') {\n          inputField.value = text;\n        }\n      }\n\n      const findParameters: PDFFindParameters = {\n        caseSensitive: options.matchCase ?? false,\n        entireWord: options.wholeWords ?? false,\n        highlightAll: options.highlightAll ?? false,\n        matchDiacritics: options.matchDiacritics ?? false,\n        findMultiple: options.findMultiple,\n        matchRegExp: options.regexp ?? false,\n        findPrevious: false,\n        query: text,\n        source: null,\n        type: 'find',\n        dontScrollIntoView: options.dontScrollIntoView ?? false,\n      };\n      const findController = options.useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n      const result = findController?.ngxFind(findParameters);\n      return result;\n    }\n  }\n\n  public findNext(useSecondaryFindcontroller: boolean = false): boolean {\n    if (!this.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call findNext() later.\");\n      return false;\n    } else {\n      const findController = useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n      findController?.ngxFindNext();\n      return true;\n    }\n  }\n\n  public findPrevious(useSecondaryFindcontroller: boolean = false): boolean {\n    if (!this.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"The PDF viewer hasn't finished initializing. Please call findPrevious() later.\");\n      return false;\n    } else {\n      const findController = useSecondaryFindcontroller ? this.PDFViewerApplication?.customFindController : this.PDFViewerApplication?.findController;\n      findController?.ngxFindPrevious();\n      return true;\n    }\n  }\n\n  public print(printRange?: PDFPrintRange) {\n    if (this.PDFViewerApplication) {\n      const alreadyPrinting = this.PDFViewerApplication?.PDFPrintServiceFactory?.isInPDFPrintRange !== undefined;\n      if (!alreadyPrinting) {\n        // slow down hurried users clicking the print button multiple times\n        if (!printRange) {\n          printRange = {} as PDFPrintRange;\n        }\n        this.setPrintRange(printRange);\n        this.PDFViewerApplication?.printPdf();\n        this.PDFViewerApplication?.eventBus.on('afterprint', this.removePrintRange.bind(this), { once: true });\n      }\n    }\n  }\n\n  public removePrintRange() {\n    if (this.PDFViewerApplication?.PDFPrintServiceFactory) {\n      delete this.PDFViewerApplication.PDFPrintServiceFactory.isInPDFPrintRange;\n      delete this.PDFViewerApplication.PDFPrintServiceFactory.filteredPageCount;\n    }\n  }\n\n  public setPrintRange(printRange: PDFPrintRange) {\n    if (!this.PDFViewerApplication?.PDFPrintServiceFactory) {\n      console.error(\"The print service hasn't been initialized yet.\");\n      return;\n    }\n\n    this.PDFViewerApplication.PDFPrintServiceFactory.isInPDFPrintRange = (page: number) => this.isInPDFPrintRange(page, printRange);\n    this.PDFViewerApplication.PDFPrintServiceFactory.filteredPageCount = this.filteredPageCount(this.PDFViewerApplication?.pagesCount, printRange);\n  }\n\n  public filteredPageCount(pageCount: number, range: PDFPrintRange): number {\n    let result = 0;\n    for (let page = 0; page < pageCount; page++) {\n      if (this.isInPDFPrintRange(page, range)) {\n        result++;\n      }\n    }\n    return result;\n  }\n\n  public isInPDFPrintRange(pageIndex: number, printRange: PDFPrintRange) {\n    const page = pageIndex + 1;\n    if (printRange.from) {\n      if (page < printRange.from) {\n        return false;\n      }\n    }\n    if (printRange.to) {\n      if (page > printRange.to) {\n        return false;\n      }\n    }\n    if (printRange.excluded) {\n      if (printRange.excluded.some((p) => p === page)) {\n        return false;\n      }\n    }\n    if (printRange.included) {\n      if (!printRange.included.some((p) => p === page)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  public async getPageAsLines(pageNumber: number): Promise<Array<Line>> {\n    if (this.PDFViewerApplication) {\n      const pdfDocument = this.PDFViewerApplication?.pdfDocument;\n\n      const page = await pdfDocument.getPage(pageNumber);\n      const textSnippets = (await page.getTextContent()).items //\n        .filter((info) => !(info 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  public async getPageAsCanvas(\n    pageNumber: number,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE,\n  ): Promise<HTMLCanvasElement | undefined> {\n    if (!this.PDFViewerApplication) {\n      return Promise.resolve(undefined);\n    }\n    const pdfDocument = this.PDFViewerApplication.pdfDocument;\n    const pdfPage = await pdfDocument.getPage(pageNumber);\n    return this.draw(pdfPage, scale, background, backgroundColorToReplace, annotationMode);\n  }\n\n  public async getPageAsImage(\n    pageNumber: number,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE,\n  ): Promise<string | undefined> {\n    const canvas = await this.getPageAsCanvas(pageNumber, scale, background, backgroundColorToReplace, annotationMode);\n    return canvas?.toDataURL();\n  }\n\n  private async draw(\n    pdfPage: PDFPageProxy,\n    scale: PDFExportScaleFactor,\n    background?: string,\n    backgroundColorToReplace: string = '#FFFFFF',\n    annotationMode: AnnotationMode = AnnotationMode.ENABLE,\n  ): Promise<HTMLCanvasElement> {\n    let zoomFactor = 1;\n    if (scale.scale) {\n      zoomFactor = scale.scale;\n    } else if (scale.width) {\n      zoomFactor = scale.width / pdfPage.getViewport({ scale: 1 }).width;\n    } else if (scale.height) {\n      zoomFactor = scale.height / pdfPage.getViewport({ scale: 1 }).height;\n    }\n    const viewport = pdfPage.getViewport({\n      scale: zoomFactor,\n    });\n    const { ctx, canvas } = this.getPageDrawContext(viewport.width, viewport.height);\n    const drawViewport = viewport.clone();\n\n    const renderContext = {\n      canvasContext: ctx,\n      viewport: drawViewport,\n      background,\n      backgroundColorToReplace,\n      annotationMode,\n    };\n    const renderTask = pdfPage.render(renderContext);\n\n    const dataUrlPromise = () => Promise.resolve(canvas);\n\n    return renderTask.promise.then(dataUrlPromise);\n  }\n\n  private getPageDrawContext(width: number, height: number): DrawContext {\n    const canvas = document.createElement('canvas');\n    const ctx = canvas.getContext('2d', { alpha: true });\n    if (!ctx) {\n      // tslint:disable-next-line: quotemark\n      throw new Error(\"Couldn't create the 2d context\");\n    }\n\n    canvas.width = width;\n    canvas.height = height;\n    this.renderer.setStyle(canvas, 'width', `${width}px`);\n    this.renderer.setStyle(canvas, 'height', `${height}px`);\n\n    return { ctx, canvas };\n  }\n\n  public async getCurrentDocumentAsBlob(): Promise<Blob | undefined> {\n    return (await this.PDFViewerApplication?.export()) || undefined;\n  }\n\n  public async getFormData(currentFormValues = true): Promise<Array<Object>> {\n    if (!this.PDFViewerApplication) {\n      return [];\n    }\n    const pdf: PDFDocumentProxy | undefined = this.PDFViewerApplication?.pdfDocument;\n    // screen DPI / PDF DPI\n    const dpiRatio = 96 / 72;\n    const result: Array<Object> = [];\n    for (let i = 1; i <= pdf?.numPages; i++) {\n      // track the current page\n      const currentPage /* : PDFPageProxy */ = await pdf.getPage(i);\n      const annotations = await currentPage.getAnnotations();\n\n      annotations\n        .filter((a) => a.subtype === 'Widget') // get the form field annotations only\n        .map((a) => ({ ...a })) // only expose copies of the annotations to avoid side-effects\n        .forEach((a) => {\n          // get the rectangle that represent the single field\n          // and resize it according to the current DPI\n          const fieldRect: Array<number> = currentPage.getViewport({ scale: dpiRatio }).convertToViewportRectangle(a.rect);\n\n          // add the corresponding input\n          if (currentFormValues && a.fieldName) {\n            try {\n              if (a.exportValue) {\n                const currentValue: any = this.PDFViewerApplication?.pdfDocument.annotationStorage.getValue(a.id, a.fieldName + '/' + a.exportValue, '');\n                a.value = currentValue?.value;\n              } else if (a.radioButton) {\n                const currentValue: any = this.PDFViewerApplication?.pdfDocument.annotationStorage.getValue(a.id, a.fieldName + '/' + a.fieldValue, '');\n                a.value = currentValue?.value;\n              } else {\n                const currentValue: any = this.PDFViewerApplication?.pdfDocument.annotationStorage.getValue(a.id, a.fieldName, '');\n                a.value = currentValue?.value;\n              }\n            } catch (exception) {\n              // just ignore it\n            }\n          }\n          result.push({ fieldAnnotation: a, fieldRect, pageNumber: i });\n        });\n    }\n    return result;\n  }\n\n  /**\n   * Adds a page to the rendering queue\n   * @param {number} pageIndex Index of the page to render\n   * @returns {boolean} false, if the page has already been rendered,\n   * if it's out of range or if the viewer hasn't been initialized yet\n   */\n  public addPageToRenderQueue(pageIndex: number): boolean {\n    return this.PDFViewerApplication?.pdfViewer.addPageToRenderQueue(pageIndex) ?? false;\n  }\n\n  public isRenderQueueEmpty(): boolean {\n    const scrolledDown = true;\n    const renderExtra = false;\n    if (this.PDFViewerApplication) {\n      const nextPage = this.PDFViewerApplication.pdfViewer.renderingQueue.getHighestPriority(\n        this.PDFViewerApplication?.pdfViewer._getVisiblePages(),\n        this.PDFViewerApplication?.pdfViewer._pages,\n        scrolledDown,\n        renderExtra,\n      );\n      return !nextPage;\n    }\n    return true;\n  }\n\n  public hasPageBeenRendered(pageIndex: number): boolean {\n    if (!this.PDFViewerApplication) {\n      return false;\n    }\n    const pages = this.PDFViewerApplication?.pdfViewer._pages;\n    if (pages.length > pageIndex && pageIndex >= 0) {\n      const pageView = pages[pageIndex];\n      const hasBeenRendered = pageView.renderingState === 3;\n      return hasBeenRendered;\n    }\n    return false;\n  }\n\n  private sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n  public async renderPage(pageIndex: number): Promise<void> {\n    if (!this.hasPageBeenRendered(pageIndex)) {\n      await this.addPageToRenderQueue(pageIndex);\n      while (!this.hasPageBeenRendered(pageIndex)) {\n        await this.sleep(7);\n      }\n    }\n  }\n\n  public currentlyRenderedPages(): Array<number> {\n    if (!this.PDFViewerApplication) {\n      return [];\n    }\n    const pages = this.PDFViewerApplication?.pdfViewer._pages;\n    return pages.filter((page) => page.renderingState === 3).map((page) => page.id);\n  }\n\n  public numberOfPages(): number {\n    if (!this.PDFViewerApplication) {\n      return 0;\n    }\n    const pages = this.PDFViewerApplication?.pdfViewer._pages;\n    return pages.length;\n  }\n\n  public getCurrentlyVisiblePageNumbers(): Array<number> {\n    const app = this.PDFViewerApplication;\n    if (!app) {\n      return [];\n    }\n    const pages = (app.pdfViewer._getVisiblePages() as any).views as Array<any>;\n    return pages?.map((page) => page.id);\n  }\n\n  public async listLayers(): Promise<Array<PdfLayer> | undefined> {\n    if (!this.PDFViewerApplication) {\n      return [];\n    }\n\n    const optionalContentConfig = await this.PDFViewerApplication?.pdfViewer.optionalContentConfigPromise;\n    if (optionalContentConfig) {\n      const levelData = optionalContentConfig.getOrder();\n      const layerIds = levelData.filter((groupId: 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   * **IMPORTANT - ID Behavior:**\n   * - Each annotation includes an `id` field for real-time event tracking via `annotationEditorEvent`\n   * - When re-applying annotations using `addEditorAnnotation()`, **new IDs are always assigned**\n   * - IDs are **not persistent** across sessions - they are temporary identifiers\n   * - If you need to store annotations for later use, you can safely **omit the `id` field**\n   *\n   * **Example - Storing and Re-applying Annotations:**\n   * ```typescript\n   * // Save annotations (IDs are optional to store)\n   * const annotations = pdfService.getSerializedAnnotations();\n   * const toStore = annotations.map(({ id, ...rest }) => rest); // Remove IDs\n   * localStorage.setItem('annotations', JSON.stringify(toStore));\n   *\n   * // Re-apply annotations (new IDs will be assigned automatically)\n   * const stored = JSON.parse(localStorage.getItem('annotations'));\n   * await pdfService.addEditorAnnotation(stored);\n   * ```\n   *\n   * @returns Array of serialized annotations with temporary IDs, or null if no annotations exist\n   */\n  public getSerializedAnnotations(): EditorAnnotation[] | null | undefined {\n    return this.PDFViewerApplication?.pdfViewer.getSerializedAnnotations();\n  }\n\n  // #3076 added by ngx-extended-pdf-viewer\n  /**\n   * Returns a single editor annotation by its ID.\n   *\n   * **IMPORTANT - ID Behavior:**\n   * - IDs are temporary and only valid during the current session\n   * - Useful for responding to `annotationEditorEvent` events\n   * - Do not rely on IDs to persist across document reloads or sessions\n   *\n   * @param id The temporary unique identifier of the annotation (from `annotationEditorEvent` or `getSerializedAnnotations()`)\n   * @returns The serialized annotation matching the ID, or null if not found\n   */\n  public getSerializedAnnotation(id: string): EditorAnnotation | null | undefined {\n    const annotations = this.PDFViewerApplication?.pdfViewer.getSerializedAnnotations();\n    if (!annotations || !Array.isArray(annotations)) {\n      return null;\n    }\n    return annotations.find((annotation) => annotation.id === id) || null;\n  }\n  // #3076 end of modification by ngx-extended-pdf-viewer\n\n  /**\n   * Programmatically adds one or more editor annotations to the PDF.\n   *\n   * **IMPORTANT - ID Behavior:**\n   * - Any `id` fields in the provided annotations are **ignored**\n   * - New unique IDs are always assigned automatically\n   * - This ensures no ID conflicts occur\n   * - The `id` field is optional when calling this method\n   *\n   * **Supported Annotation Types:**\n   * - Ink (drawings)\n   * - FreeText (text boxes)\n   * - Stamp (images)\n   * - Highlight\n   * - Popup (comments)\n   *\n   * @param serializedAnnotation A single annotation object, array of annotations, or JSON string\n   * @returns Promise that resolves when the annotation(s) have been added\n   *\n   * @example\n   * // Add a single annotation (with or without ID - both work the same)\n   * await pdfService.addEditorAnnotation({\n   *   annotationType: 3,\n   *   color: [255, 0, 0],\n   *   value: 'Hello',\n   *   pageIndex: 0,\n   *   rect: [100, 100, 200, 150],\n   *   rotation: 0\n   *   // id field is optional and will be ignored if provided\n   * });\n   */\n  public async addEditorAnnotation(serializedAnnotation: string | EditorAnnotation): Promise<void> {\n    // #3061 When the editor mode is NONE, PDF.js internally switches to FREETEXT mode temporarily,\n    // which causes the FreeText popup to flash. Prevent this by hiding the popup during the operation.\n    const currentMode = this.PDFViewerApplication?.pdfViewer.annotationEditorMode;\n    const popup = document.getElementById('editorFreeTextParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If mode is NONE and popup was hidden, keep it hidden during the temporary mode switch\n    if (currentMode === 0 && wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    await this.PDFViewerApplication?.pdfViewer.addEditorAnnotation(serializedAnnotation);\n\n    // #3061 Remove the temporary hiding class after the operation\n    if (currentMode === 0 && wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public removeEditorAnnotations(filter?: (serialized: object) => boolean): void {\n    this.PDFViewerApplication?.pdfViewer.removeEditorAnnotations(filter);\n  }\n\n  private async loadImageAsDataURL(imageUrl: string): Promise<Blob | string> {\n    if (imageUrl.startsWith('data:')) {\n      return imageUrl;\n    }\n    const response = await fetch(imageUrl);\n    if (!response.ok) {\n      throw new Error(`Failed to fetch the image from ${imageUrl}: ${response.statusText}`);\n    }\n\n    const imageBlob = await response.blob();\n    return imageBlob;\n  }\n\n  public async addImageToAnnotationLayer({ urlOrDataUrl, page, left, bottom, right, top, rotation }: PdfImageParameters): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      console.error('The PDF viewer has not been initialized yet.');\n      return;\n    }\n    let pageToModify: number;\n    if (page !== undefined) {\n      if (page !== this.currentPageIndex()) {\n        await this.renderPage(page);\n      }\n      pageToModify = page;\n    } else {\n      pageToModify = this.currentPageIndex() ?? 0;\n    }\n    const previousAnnotationEditorMode = this.PDFViewerApplication.pdfViewer.annotationEditorMode;\n\n    // #3061 Check if the stamp popup is currently hidden to prevent flashing\n    const popup = document.getElementById('editorStampParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If the popup was hidden, add a CSS class to keep it hidden during mode switch\n    if (wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    this.switchAnnotationEdtorMode(13);\n    const dataUrl = await this.loadImageAsDataURL(urlOrDataUrl);\n    const pageSize = this.PDFViewerApplication.pdfViewer._pages[pageToModify].pdfPage.view;\n    const leftDim = pageSize[0];\n    const bottomDim = pageSize[1];\n    const rightDim = pageSize[2];\n    const topDim = pageSize[3];\n    const width = rightDim - leftDim;\n    const height = topDim - bottomDim;\n    const imageWidth = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientWidth;\n    const imageHeight = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientHeight;\n    const leftPdf = this.convertToPDFCoordinates(left, width, 0, imageWidth);\n    const bottomPdf = this.convertToPDFCoordinates(bottom, height, 0, imageHeight);\n    const rightPdf = this.convertToPDFCoordinates(right, width, width, imageWidth);\n    const topPdf = this.convertToPDFCoordinates(top, height, height, imageHeight);\n\n    const stampAnnotation: StampEditorAnnotation = {\n      annotationType: 13,\n      pageIndex: pageToModify,\n      bitmapUrl: dataUrl,\n      rect: [leftPdf, bottomPdf, rightPdf, topPdf],\n      rotation: rotation ?? 0,\n      isCopy: true,\n    };\n    this.addEditorAnnotation(stampAnnotation);\n    await this.sleep(10);\n    this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n\n    // #3061 Remove the temporary hiding class after switching back\n    if (wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public async addHighlightToAnnotationLayer(\n    color: number[],\n    page: number | undefined,\n    left: number | string,\n    bottom: number | string,\n    right: number | string,\n    top: number | string,\n    thickness: number = 12,\n    rotation: 0 | 90 | 180 | 270 = 0,\n    opacity: number = 0.5,\n  ): Promise<void> {\n    if (!this.PDFViewerApplication) {\n      console.error('The PDF viewer has not been initialized yet.');\n      return;\n    }\n\n    let pageToModify: number;\n    if (page !== undefined) {\n      if (page !== this.currentPageIndex()) {\n        await this.renderPage(page);\n      }\n      pageToModify = page;\n    } else {\n      pageToModify = this.currentPageIndex() ?? 0;\n    }\n\n    const previousAnnotationEditorMode = this.PDFViewerApplication.pdfViewer.annotationEditorMode;\n\n    // #3061 Check if the popup is currently hidden to prevent flashing\n    const popup = document.getElementById('editorHighlightParamsToolbar');\n    const wasHidden = popup?.classList.contains('hidden') ?? true;\n\n    // If the popup was hidden, add a CSS class to keep it hidden during mode switch\n    if (wasHidden && popup) {\n      this.renderer.addClass(popup, 'ngx-keep-hidden');\n    }\n\n    this.switchAnnotationEdtorMode(9); // AnnotationEditorType.HIGHLIGHT\n\n    const pageSize = this.PDFViewerApplication.pdfViewer._pages[pageToModify].pdfPage.view;\n    const leftDim = pageSize[0];\n    const bottomDim = pageSize[1];\n    const rightDim = pageSize[2];\n    const topDim = pageSize[3];\n    const width = rightDim - leftDim;\n    const height = topDim - bottomDim;\n    const pageWidth = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientWidth;\n    const pageHeight = this.PDFViewerApplication?.pdfViewer._pages[pageToModify].div.clientHeight;\n\n    const leftPdf = this.convertToPDFCoordinates(left, width, 0, pageWidth);\n    const bottomPdf = this.convertToPDFCoordinates(bottom, height, 0, pageHeight);\n    const rightPdf = this.convertToPDFCoordinates(right, width, width, pageWidth);\n    const topPdf = this.convertToPDFCoordinates(top, height, height, pageHeight);\n\n    // Create quadPoints object with numeric keys (matching export format)\n    const quadPoints: any = {};\n    quadPoints[0] = leftPdf; // x1 - left edge start\n    quadPoints[1] = topPdf; // y1 - top edge start\n    quadPoints[2] = rightPdf; // x2 - right edge end\n    quadPoints[3] = topPdf; // y2 - top edge end\n    quadPoints[4] = leftPdf; // x3 - left edge start (bottom)\n    quadPoints[5] = bottomPdf; // y3 - bottom edge start\n    quadPoints[6] = rightPdf; // x4 - right edge end (bottom)\n    quadPoints[7] = bottomPdf; // y4 - bottom edge end\n\n    const highlightAnnotation: HighlightEditorAnnotation = {\n      annotationType: 9,\n      color: color,\n      opacity: opacity,\n      thickness: thickness,\n      quadPoints: quadPoints,\n      outlines: [\n        [\n          // Single outline rectangle\n          leftPdf,\n          bottomPdf, // Bottom-left\n          leftPdf,\n          topPdf, // Top-left\n          rightPdf,\n          topPdf, // Top-right\n          rightPdf,\n          bottomPdf, // Bottom-right\n        ],\n      ],\n      pageIndex: pageToModify,\n      rect: [leftPdf, bottomPdf, rightPdf, topPdf],\n      rotation: rotation,\n      isCopy: true,\n    };\n\n    this.addEditorAnnotation(highlightAnnotation);\n    await this.sleep(10);\n    this.switchAnnotationEdtorMode(previousAnnotationEditorMode);\n\n    // #3061 Remove the temporary hiding class after switching back\n    if (wasHidden && popup) {\n      this.renderer.removeClass(popup, 'ngx-keep-hidden');\n    }\n  }\n\n  public currentPageIndex(): number | undefined {\n    const viewer = this.PDFViewerApplication?.pdfViewer;\n    if (viewer) {\n      return viewer.currentPageNumber - 1;\n    }\n    return undefined;\n  }\n\n  private convertToPDFCoordinates(value: ZoomType, maxValue: number, defaultValue: number, imageMaxValue: number): number {\n    if (!value) {\n      return defaultValue;\n    }\n    if (typeof value === 'string') {\n      if (value.endsWith('%')) {\n        return (parseInt(value, 10) / 100) * maxValue;\n      } else if (value.endsWith('px')) {\n        return parseInt(value, 10) * (maxValue / imageMaxValue);\n      } else {\n        return parseInt(value, 10);\n      }\n    } else {\n      return value;\n    }\n  }\n\n  public switchAnnotationEdtorMode(mode: number): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditormode', { mode });\n  }\n\n  public set editorFontSize(size: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.FREETEXT_SIZE, size);\n  }\n\n  public set editorFontColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.FREETEXT_COLOR, color);\n  }\n\n  public set editorInkColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.INK_COLOR, color);\n  }\n\n  public set editorInkOpacity(opacity: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.INK_OPACITY, opacity);\n  }\n\n  public set editorInkThickness(thickness: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.INK_THICKNESS, thickness);\n  }\n\n  public set editorHighlightColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_COLOR, color);\n  }\n\n  public set editorHighlightDefaultColor(color: string) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR, color);\n  }\n\n  public set editorHighlightShowAll(showAll: boolean) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, showAll);\n  }\n\n  public set editorHighlightThickness(thickness: number) {\n    this.setEditorProperty(AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, thickness);\n  }\n\n  public setEditorProperty(editorPropertyType: number, value: any): void {\n    this.PDFViewerApplication?.eventBus.dispatch('switchannotationeditorparams', { type: editorPropertyType, value });\n    this.PDFViewerApplication?.eventBus.dispatch('annotationeditorparamschanged', { details: [[editorPropertyType, value]] });\n  }\n\n  public getCurrentPage(): number {\n    if (!this.PDFViewerApplication) {\n      return 1;\n    }\n    return this.PDFViewerApplication.page ?? 1;\n  }\n\n  public getPageCount(): number {\n    if (!this.PDFViewerApplication) {\n      return 0;\n    }\n    return this.PDFViewerApplication.pagesCount ?? 0;\n  }\n\n  public movePage(fromIndex: number, toIndex: number): void {\n    if (!this.PDFViewerApplication) {\n      console.error('PDF viewer not initialized');\n      return;\n    }\n\n    // Check if page reordering is enabled\n    const enablePageReordering = (globalThis as any).pdfDefaultOptions?.enablePageReordering;\n    if (!enablePageReordering) {\n      console.error('Page reordering is not enabled. Set pdfDefaultOptions.enablePageReordering = true');\n      return;\n    }\n\n    // Validate indices (1-based)\n    const pageCount = this.getPageCount();\n    if (fromIndex < 1 || fromIndex > pageCount || toIndex < 1 || toIndex > pageCount) {\n      console.error(`Invalid page indices. fromIndex: ${fromIndex}, toIndex: ${toIndex}, pageCount: ${pageCount}`);\n      return;\n    }\n\n    if (fromIndex === toIndex) {\n      return; // No movement needed\n    }\n\n    try {\n      // Call the movePage function from app.js\n      if (this.PDFViewerApplication.movePage) {\n        this.PDFViewerApplication.movePage(fromIndex, toIndex);\n      } else {\n        console.error('movePage function not available in PDF viewer application');\n      }\n    } catch (error) {\n      console.error('Error moving page:', error);\n    }\n  }\n}\n","import { 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 pdfCspPolicyService: PdfCspPolicyService,\n    @Inject(CSP_NONCE) private csp_nonce: string,\n  ) {\n    effect(() => {\n      if (this.onPDFJSInitSignal()) {\n        this.pdfjsVersion = getVersionSuffix(pdfDefaultOptions.assetsFolder);\n      }\n    });\n  }\n\n  private addScriptOpChainingSupport(useInlineScripts: boolean): Promise<boolean> {\n    if (!useInlineScripts || this.isCSPApplied()) {\n      return new Promise((resolve) => {\n        const script = this.createScriptElement(pdfDefaultOptions.assetsFolder + '/op-chaining-support.js');\n        script.onload = () => {\n          script.remove();\n          script.onload = null;\n          resolve((<any>globalThis).ngxExtendedPdfViewerCanRunModernJSCode as boolean);\n        };\n        script.onerror = () => {\n          script.remove();\n          (<any>globalThis).ngxExtendedPdfViewerCanRunModernJSCode = false;\n          resolve(false);\n          script.onerror = null;\n        };\n\n        document.body.appendChild(script);\n      });\n    } else {\n      const code = `\nnew (function () {\n  class BrowserCompatibilityTester {\n    // Does your browser doesn't support private fields?\n    #privateField;\n\n    constructor() {\n      // Does your browser support the logical assignment operators?\n      let x = false;\n      x ||= true;\n\n      this.#privateMethod();\n    }\n\n    // Does your browser doesn't support private methods?\n    #privateMethod() {\n      // check the the browser supports string.at()\n      return 'hello'.at(4);\n    }\n\n    supportsOptionalChaining() {\n      const optionalChaining = {\n        support: true,\n      };\n      return optionalChaining?.support;\n    }\n  }\n\n  function supportsPromiseWithResolvers() {\n    const iframe = document.createElement('iframe');\n    document.firstElementChild.append(iframe);\n    const useLegacyPdfViewer = 'withResolvers' in iframe.contentWindow['Promise'];\n    iframe.parentElement.removeChild(iframe);\n\n    return useLegacyPdfViewer;\n  }\n\n  const supportsOptionalChaining = new BrowserCompatibilityTester().supportsOptionalChaining();\n  const supportModernPromises = supportsPromiseWithResolvers();\n  window.ngxExtendedPdfViewerCanRunModernJSCode = supportsOptionalChaining && supportModernPromises;\n})();\n`;\n      const script = this.createInlineScript(code);\n      document.getElementsByTagName('head')[0].appendChild(script);\n      return new Promise((resolve) => {\n        const interval = setInterval(() => {\n          if ((globalThis as any).ngxExtendedPdfViewerCanRunModernJSCode !== undefined) {\n            clearInterval(interval);\n            resolve((globalThis as any).ngxExtendedPdfViewerCanRunModernJSCode);\n          }\n        }, 1);\n      });\n    }\n  }\n\n  private createInlineScript(code: string): HTMLScriptElement {\n    const script = document.createElement('script');\n    script.async = true;\n    script.type = 'module';\n    script.className = `ngx-extended-pdf-viewer-script`;\n    script.text = code;\n    if (this.csp_nonce) {\n      // assigning null to script.nonce results in a string \"null\", so let's add a null check\n      script.nonce = this.csp_nonce;\n    }\n    return script;\n  }\n\n  private isCSPAppliedViaMetaTag(): boolean {\n    const metaTags = document.getElementsByTagName('meta');\n    for (let i = 0; i < metaTags.length; i++) {\n      if (metaTags[i].getAttribute('http-equiv') === 'Content-Security-Policy') {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  private isCSPApplied() {\n    if (this.isCSPAppliedViaMetaTag()) {\n      return true;\n    }\n    return false;\n  }\n\n  private createScriptElement(sourcePath: string): HTMLScriptElement {\n    const script = document.createElement('script');\n    script.async = true;\n    script.type = sourcePath.includes('.mjs') ? 'module' : 'text/javascript';\n    script.className = `ngx-extended-pdf-viewer-script`;\n    this.pdfCspPolicyService.addTrustedJavaScript(script, sourcePath);\n    return script;\n  }\n\n  private getPdfJsPath(artifact: 'pdf' | 'viewer') {\n    let suffix = pdfDefaultOptions._internalFilenameSuffix;\n    if (this._needsES5) {\n      suffix = ''; // we don't publish minified ES5 files\n    }\n    suffix += '.mjs';\n    const assets = pdfDefaultOptions.assetsFolder;\n    const versionSuffix = getVersionSuffix(assets);\n    const artifactPath = `/${artifact}-`;\n    const es5 = this._needsES5 ? '-es5' : '';\n\n    return assets + artifactPath + versionSuffix + es5 + suffix;\n  }\n\n  private async loadViewer(forceReload: boolean): Promise<void> {\n    return new Promise((resolve) => {\n      let viewerPath = this.getPdfJsPath('viewer');\n      if (forceReload) {\n        viewerPath += '?v=' + new Date().getTime();\n      }\n      const listener = (event: 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 parseInt(match[1], 10) < 14;\n    }\n\n    return false;\n  }\n\n  private async needsES5(useInlineScripts: boolean): Promise<boolean> {\n    if (typeof window === 'undefined') {\n      // server-side rendering\n      return false;\n    }\n    if (this._needsES5 === undefined) {\n      const isIE = !!(<any>globalThis).MSInputMethodContext && !!(<any>document).documentMode;\n      const isEdge = /Edge\\/\\d./i.test(navigator.userAgent);\n      const isIOs13OrBelow = this.iOSVersionRequiresES5();\n      let needsES5 = typeof ReadableStream === 'undefined' || typeof Promise['allSettled'] === 'undefined';\n      if (needsES5 || isIE || isEdge || isIOs13OrBelow || this.forceUsingLegacyES5) {\n        this._needsES5 = true;\n        return true;\n      }\n      this._needsES5 = !(await this.ngxExtendedPdfViewerCanRunModernJSCode(useInlineScripts));\n      this.polyfillPromiseWithResolversIfZoneJSOverwritesIt();\n    }\n    return this._needsES5;\n  }\n\n  /**\n   * Angular 16 uses zone.js 0.13.3, and this version has a problem with Promise.withResolvers.\n   * If your browser supports Promise.withResolvers, zone.js accidentally overwrites it with \"undefined\".\n   * This method adds a polyfill for Promise.withResolvers if it is not available.\n   */\n  private polyfillPromiseWithResolversIfZoneJSOverwritesIt() {\n    const TypelessPromise = Promise as any;\n    if (!TypelessPromise.withResolvers) {\n      TypelessPromise.withResolvers = function withResolvers() {\n        let a: unknown;\n        let b: unknown;\n        const c = new this(function (resolve: unknown, reject: unknown) {\n          a = resolve;\n          b = reject;\n        });\n        return { resolve: a, reject: b, promise: c };\n      };\n    }\n  }\n\n  private ngxExtendedPdfViewerCanRunModernJSCode(useInlineScripts: boolean): Promise<boolean> {\n    return new Promise((resolve) => {\n      const support = (<any>globalThis).ngxExtendedPdfViewerCanRunModernJSCode;\n      support !== undefined ? resolve(support) : resolve(this.addScriptOpChainingSupport(useInlineScripts));\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { IPDFViewerApplication } from '../public_api';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NgxKeyboardManagerService {\n  /** Allows the user to disable the keyboard bindings completely */\n  public ignoreKeyboard = false;\n\n  /** Allows the user to disable a list of key bindings. */\n  public ignoreKeys: Array<string> = [];\n\n  /** Allows the user to enable a list of key bindings explicitly. If this property is set, every other key binding is ignored. */\n  public acceptKeys: Array<string> = [];\n\n  constructor() {}\n\n  public isKeyIgnored(cmd: number, keycode: number | 'WHEEL'): boolean {\n    if (keycode === 'WHEEL') {\n      if (!!this.ignoreKeys && this.isKeyInList(this.ignoreKeys, cmd, 'WHEEL')) {\n        return true;\n      }\n      if (!!this.acceptKeys && this.acceptKeys.length > 0) {\n        return !this.isKeyInList(this.acceptKeys, cmd, 'WHEEL');\n      }\n\n      return false;\n    }\n\n    if (keycode === 16 || keycode === 17 || keycode === 18 || keycode === 224) {\n      // ignore solitary SHIFT, ALT, CMD, and CTRL because they only make sense as two-key-combinations\n      return true;\n    }\n    // cmd is a bit-array:\n    // 1 == CTRL\n    // 2 == ALT\n    // 4 == SHIFT\n    // 8 == META\n    if (!!this.ignoreKeyboard) {\n      return true;\n    }\n\n    if (!!this.ignoreKeys && this.ignoreKeys.length > 0) {\n      if (this.isKeyInList(this.ignoreKeys, cmd, keycode)) {\n        return true;\n      }\n    }\n\n    if (!!this.acceptKeys && this.acceptKeys.length > 0) {\n      return !this.isKeyInList(this.acceptKeys, cmd, keycode);\n    }\n    return false;\n  }\n\n  private isKeyInList(settings: Array<string>, cmd: number, keycode: number | 'WHEEL'): boolean {\n    if (!settings) {\n      return true;\n    }\n    return settings.some((keyDef) => this.isKey(keyDef, cmd, keycode));\n  }\n\n  private isKey(keyDef: string, cmd: number, keycode: number | 'WHEEL'): boolean {\n    let cmdDef = 0;\n    let key = 0;\n    keyDef = keyDef.toLowerCase();\n    // tslint:disable: no-bitwise\n    if (keyDef.includes('ctrl+')) {\n      cmdDef |= 1;\n      keyDef = keyDef.replace('ctrl+', '');\n    }\n    if (keyDef.includes('cmd+')) {\n      cmdDef |= 8;\n      keyDef = keyDef.replace('cmd+', '');\n    }\n    if (keyDef.includes('alt+')) {\n      cmdDef |= 2;\n      keyDef = keyDef.replace('alt+', '');\n    }\n    if (keyDef.includes('shift+')) {\n      cmdDef |= 4;\n      keyDef = keyDef.replace('shift+', '');\n    }\n    if (keyDef.includes('meta+')) {\n      cmdDef |= 8;\n      keyDef = keyDef.replace('meta+', '');\n    }\n\n    if (keyDef === 'up') {\n      key = 38;\n    } else if (keyDef === 'down') {\n      key = 40;\n    } else if (keyDef === '+' || keyDef === '\"+\"') {\n      key = 171;\n    } else if (keyDef === '-' || keyDef === '\"-\"') {\n      key = 173;\n    } else if (keyDef === 'esc') {\n      key = 27;\n    } else if (keyDef === 'enter') {\n      key = 13;\n    } else if (keyDef === 'space') {\n      key = 32;\n    } else if (keyDef === 'f4') {\n      key = 115;\n    } else if (keyDef === 'backspace') {\n      key = 8;\n    } else if (keyDef === 'home') {\n      key = 36;\n    } else if (keyDef === 'end') {\n      key = 35;\n    } else if (keyDef === 'left') {\n      key = 37;\n    } else if (keyDef === 'right') {\n      key = 39;\n    } else if (keyDef === 'pagedown') {\n      key = 34;\n    } else if (keyDef === 'pageup') {\n      key = 33;\n    } else {\n      key = keyDef.toUpperCase().charCodeAt(0);\n    }\n    if (keycode === 'WHEEL') {\n      return keyDef === 'wheel' && cmd === cmdDef;\n    }\n    return key === keycode && cmd === cmdDef;\n  }\n\n  public registerKeyboardListener(PDFViewerApplication: IPDFViewerApplication) {\n    PDFViewerApplication.ngxKeyboardManager = this;\n  }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { IPDFViewerApplication } from '../options/pdf-viewer-application';\nimport { pdfDefaultOptions } from '../options/pdf-default-options';\n\n/**\n * Pure Angular service for iOS Safari pinch-to-zoom optimization\n * Works by dynamically adjusting the maxCanvasPixels option during touch gestures\n * This approach is compatible with the existing mypdf.js MaxCanvasSize class\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class IOSCanvasOptimizationService {\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n  private isInitialized = false;\n  private isPinching = false;\n  private cooldownTimer: any = null;\n  private originalMaxCanvasPixels: number;\n  private reducedMaxCanvasPixels: number;\n\n  // Configuration\n  private readonly cooldownDuration = 2000; // 2 seconds\n  private readonly reductionFactor = 0.25; // Reduce to 25% during pinch\n  private readonly iosMaxCanvasPixels = 5242880; // PDF.js iOS limit (5MP)\n\n  constructor(private ngZone: NgZone) {\n    // Store original canvas size\n    this.originalMaxCanvasPixels = pdfDefaultOptions.maxCanvasPixels || this.getDefaultCanvasSize();\n    this.reducedMaxCanvasPixels = Math.min(\n      this.originalMaxCanvasPixels * this.reductionFactor,\n      this.iosMaxCanvasPixels\n    );\n  }\n\n  /**\n   * Initialize the service with PDFViewerApplication\n   * Called from NgxExtendedPdfViewerComponent.initialize()\n   */\n  initialize(pdfViewerApplication: IPDFViewerApplication): void {\n    if (this.isInitialized || typeof window === 'undefined') return;\n\n    this.PDFViewerApplication = pdfViewerApplication;\n    this.ngZone.runOutsideAngular(() => {\n      this.setupTouchListeners();\n      this.isInitialized = true;\n    });\n  }\n\n  private getDefaultCanvasSize(): number {\n    const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n    const isMobile = /Android|iPhone|iPad|iPod/.test(navigator.userAgent);\n    \n    if (isIOS || isMobile) {\n      return this.iosMaxCanvasPixels; // Use PDF.js iOS limit\n    }\n    \n    return 33554432; // PDF.js desktop default (32MP)\n  }\n\n  private setupTouchListeners(): void {\n    // Listen for pinch-to-zoom gestures\n    window.addEventListener('touchstart', (e) => {\n      if (e.touches.length === 2) {\n        this.onPinchStart();\n      }\n    }, { passive: true });\n\n    window.addEventListener('touchend', (e) => {\n      if (e.touches.length < 2 && this.isPinching) {\n        this.onPinchEnd();\n      }\n    }, { passive: true });\n\n    window.addEventListener('touchcancel', () => {\n      if (this.isPinching) {\n        this.onPinchEnd();\n      }\n    }, { passive: true });\n  }\n\n  private onPinchStart(): void {\n    if (this.isPinching) return;\n\n    this.isPinching = true;\n    this.clearCooldown();\n    \n    // Reduce canvas resolution immediately for smooth pinching\n    this.updateCanvasSize(this.reducedMaxCanvasPixels);\n  }\n\n  private onPinchEnd(): void {\n    if (!this.isPinching) return;\n\n    this.isPinching = false;\n    this.startCooldown();\n  }\n\n  private startCooldown(): void {\n    this.clearCooldown();\n    this.cooldownTimer = setTimeout(() => {\n      // Restore full resolution after cooldown\n      this.updateCanvasSize(this.originalMaxCanvasPixels);\n    }, this.cooldownDuration);\n  }\n\n  private clearCooldown(): void {\n    if (this.cooldownTimer) {\n      clearTimeout(this.cooldownTimer);\n      this.cooldownTimer = null;\n    }\n  }\n\n  private updateCanvasSize(maxCanvasPixels: number): void {\n    // Update the pdfDefaultOptions to affect new renders\n    pdfDefaultOptions.maxCanvasPixels = maxCanvasPixels;\n\n    // Update existing PDF.js instances if available\n    if (this.PDFViewerApplication) {\n      // Update main viewer\n      if (this.PDFViewerApplication.pdfViewer) {\n        this.PDFViewerApplication.pdfViewer.maxCanvasPixels = maxCanvasPixels;\n      }\n\n      // Update thumbnail viewer\n      if (this.PDFViewerApplication.pdfThumbnailViewer) {\n        this.PDFViewerApplication.pdfThumbnailViewer.maxCanvasPixels = maxCanvasPixels;\n      }\n\n      // Trigger a gentle re-render of visible pages only during transitions\n      // (not during active pinching to avoid performance issues)\n      if (!this.isPinching) {\n        setTimeout(() => this.triggerVisiblePageRerender(), 100);\n      }\n    }\n  }\n\n  private triggerVisiblePageRerender(): void {\n    if (!this.PDFViewerApplication?.pdfViewer) return;\n\n    const pdfViewer = this.PDFViewerApplication.pdfViewer;\n    \n    // Only re-render currently visible pages to minimize performance impact\n    pdfViewer._pages?.forEach((pageView: any) => {\n      if (pageView && this.isPageVisible(pageView)) {\n        // Gently trigger re-render by invalidating the current render\n        if (pageView.renderingState === 3 /* FINISHED */) {\n          pageView.reset();\n          // Let the normal rendering queue handle the re-render\n          if (pdfViewer.renderingQueue) {\n            pdfViewer.renderingQueue.renderView(pageView);\n          }\n        }\n      }\n    });\n  }\n\n  private isPageVisible(pageView: any): boolean {\n    if (!pageView?.div) return false;\n    \n    const rect = pageView.div.getBoundingClientRect();\n    const viewHeight = window.innerHeight || document.documentElement.clientHeight;\n    const viewWidth = window.innerWidth || document.documentElement.clientWidth;\n    \n    return (\n      rect.bottom >= 0 &&\n      rect.right >= 0 &&\n      rect.top <= viewHeight &&\n      rect.left <= viewWidth\n    );\n  }\n\n  /**\n   * Get current canvas size setting\n   */\n  getCurrentCanvasSize(): number {\n    return pdfDefaultOptions.maxCanvasPixels || this.originalMaxCanvasPixels;\n  }\n\n  /**\n   * Check if currently in pinch mode\n   */\n  isPinchingActive(): boolean {\n    return this.isPinching;\n  }\n\n  /**\n   * Manually override the canvas size (for advanced users)\n   */\n  setCanvasSize(maxCanvasPixels: number): void {\n    this.originalMaxCanvasPixels = maxCanvasPixels;\n    this.reducedMaxCanvasPixels = Math.min(\n      maxCanvasPixels * this.reductionFactor,\n      this.iosMaxCanvasPixels\n    );\n    \n    if (!this.isPinching) {\n      this.updateCanvasSize(maxCanvasPixels);\n    }\n  }\n\n  /**\n   * Cleanup when service is destroyed\n   */\n  destroy(): void {\n    this.clearCooldown();\n    this.isInitialized = false;\n    // Touch listeners will be cleaned up when window is destroyed\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\nexport type ResponsiveVisibility = boolean | 'always-visible' | 'always-in-secondary-menu' | 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\nexport class PdfBreakpoints {\n  static xs = 490;\n\n  static sm = 560;\n\n  static md = 610;\n\n  static lg = 660;\n\n  static xl = 790;\n\n  static xxl = 910;\n}\n\nexport type ResponsiveCSSClass =\n  | 'hiddenXXSView'\n  | 'hiddenTinyView'\n  | 'hiddenSmallView'\n  | 'hiddenMediumView'\n  | 'hiddenLargeView'\n  | 'hiddenXLView'\n  | 'hiddenXXLView'\n  | 'invisible'\n  | 'always-visible'\n  | 'always-in-secondary-menu';\n\nexport type ResponsiveCSSClassInSecondaryToolbar =\n  | 'visibleXXSView'\n  | 'visibleTinyView'\n  | 'visibleSmallView'\n  | 'visibleMediumView'\n  | 'visibleLargeView'\n  | 'visibleXLView'\n  | 'visibleXXLView'\n  | 'invisible'\n  | 'always-visible'\n  | 'always-in-secondary-menu';\n\n@Pipe({\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);\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 = !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\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#outerContainer .hiddenXLView,\n#outerContainer .hiddenXXLView {\n  display: unset;\n}\n\n@media all and (max-width: ${this.xl()}px) {\n  #outerContainer .hiddenXLView {\n    display: none;\n  }\n  #outerContainer .visibleXLView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.xxl()}px) {\n  #outerContainer .hiddenXXLView {\n    display: none;\n  }\n  #outerContainer  #mainContainer .visibleXXLView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.xs()}px) {\n  #outerContainer .hiddenTinyView,\n  #outerContainer .hiddenTinyView * {\n    display: none;\n  }\n  #outerContainer  #mainContainer .visibleTinyView {\n    display: inherit;\n  }\n}\n\n@media all and (max-width: ${this.xxs()}px) {\n  #outerContainer .hiddenXXSView,\n  #outerContainer .hiddenXXSView * {\n    display: none;\n  }\n  #outerContainer #mainContainer .visibleXXSView {\n    display: inherit;\n  }\n}\n  `;\n  });\n\n  constructor(\n    private readonly renderer: Renderer2,\n    @Inject(DOCUMENT) private readonly document: Document,\n    private readonly pdfCspPolicyService: PdfCspPolicyService,\n    @Inject(CSP_NONCE) @Optional() private readonly nonce: string | null | undefined,\n    private 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            ngxExtendedPdfViewer.height = undefined;\n            ngxExtendedPdfViewer.autoHeight = true;\n            if (zoom) {\n              (<HTMLElement>zoom).style.height = '';\n            }\n            this.checkHeight(ngxExtendedPdfViewer, logLevel);\n          }\n        }));\n      }\n    }\n  }\n\n  public checkHeight(ngxExtendedPdfViewer: NgxHasHeight, logLevel: VerbosityLevel): void {\n    if (this.isHeightDefinedWithUnits(ngxExtendedPdfViewer.height)) return;\n    if (this.isPrinting()) return;\n\n    const container = this.getContainer();\n    if (!container) return;\n\n    if (this.isContainerHeightZero(container, ngxExtendedPdfViewer, logLevel)) {\n      ngxExtendedPdfViewer.autoHeight = true;\n    }\n\n    if (ngxExtendedPdfViewer.autoHeight) {\n      this.adjustHeight(container, ngxExtendedPdfViewer);\n    }\n  }\n\n  /**\n   * The height is defined with one of the units vh, vw, em, rem, etc.\n   * So the height check isn't necessary.\n   * @param height the height of the container\n   */\n  private isHeightDefinedWithUnits(height: string | undefined): boolean {\n    return height ? isNaN(Number(height.replace('%', ''))) : false;\n  }\n\n  /**\n   * #1702 workaround to a Firefox bug: when printing, container.clientHeight is temporarily 0,\n   * causing ngx-extended-pdf-viewer to default to 100 pixels height. So it's better to do nothing.\n   * @returns true if data-pdfjsprinting is set\n   */\n  private isPrinting(): boolean {\n    /* 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 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 = 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 window.innerHeight;\n  }\n\n  private calculateBorderMargin(container: HTMLElement | null): number {\n    if (container) {\n      const computedStyle = window.getComputedStyle(container);\n\n      const padding = UnitToPx.toPx(computedStyle.paddingBottom);\n      const margin = UnitToPx.toPx(computedStyle.marginBottom);\n      if (container.style.zIndex) {\n        return padding + margin;\n      }\n      return padding + margin + this.calculateBorderMargin(container.parentElement);\n    }\n    return 0;\n  }\n\n  public ngOnDestroy() {\n    const styles = this.document.getElementById('pdf-dynamic-css') as HTMLElement;\n    if (styles?.parentElement) {\n      (styles.parentElement as any).removeChild(styles);\n    }\n  }\n}\n","","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n    selector: 'pdf-acroform-default-theme',\n    template: '',\n    styleUrls: ['./pdf-acroform-default-colors.css'],\n    encapsulation: ViewEncapsulation.None,\n    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 id=\"aiModelSettings\">\n          <div>\n            <span data-l10n-id=\"pdfjs-editor-alt-text-settings-download-model-label\"\n              data-l10n-args='{ \"totalSize\": 180 }'>Alt text AI model (180MB)</span>\n            <div id=\"aiModelDescription\" class=\"description\">\n              <span data-l10n-id=\"pdfjs-editor-alt-text-settings-ai-model-description\">Runs locally on your device so\n                your data stays private. Required for automatic alt text.</span>\n            </div>\n          </div>\n          <button id=\"deleteModelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n              data-l10n-id=\"pdfjs-editor-alt-text-settings-delete-model-button\">Delete</span></button>\n          <button id=\"downloadModelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n              data-l10n-id=\"pdfjs-editor-alt-text-settings-download-model-button\">Download</span></button>\n        </div>\n      </div>\n    </div>\n    <div class=\"dialogSeparator\"></div>\n    <div id=\"altTextEditor\">\n      <span data-l10n-id=\"pdfjs-editor-alt-text-settings-editor-title\">Alt text editor</span>\n      <div id=\"showAltTextEditor\">\n        <div class=\"toggler\">\n          <button id=\"showAltTextDialogButton\" type=\"button\" class=\"toggle-button\" aria-pressed=\"true\"\n            tabindex=\"0\"></button>\n          <label for=\"showAltTextDialogButton\" class=\"togglerLabel\"\n            data-l10n-id=\"pdfjs-editor-alt-text-settings-show-dialog-button-label\">Show alt text editor right away when\n            adding an image</label>\n        </div>\n        <div id=\"showAltTextDialogDescription\" class=\"description\">\n          <span data-l10n-id=\"pdfjs-editor-alt-text-settings-show-dialog-description\">Helps you make sure all your\n            images have alt text.</span>\n        </div>\n      </div>\n    </div>\n    <div id=\"buttons\" class=\"dialogButtonsGroup\">\n      <button id=\"altTextSettingsCloseButton\" type=\"button\" class=\"primaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-alt-text-settings-close-button\">Close</span></button>\n    </div>\n  </div>\n</dialog>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-document-properties-dialog',\n    templateUrl: './pdf-document-properties-dialog.component.html',\n    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 id=\"editSignatureDescriptionContainer\" class=\"mainContainer\">\n    <div class=\"title\">\n      <span id=\"editSignatureDescriptionTitle\" role=\"sectionhead\"\n        data-l10n-id=\"pdfjs-editor-edit-signature-dialog-title\" tabindex=\"0\"></span>\n    </div>\n    <div id=\"editSignatureDescriptionAndView\">\n      <div id=\"editSignatureDescriptionContainer\">\n        <label for=\"editSignatureDescInput\" data-l10n-id=\"pdfjs-editor-add-signature-description-label\"></label>\n        <span id=\"editSignatureDescription\" class=\"inputWithClearButton\">\n          <input id=\"editSignatureDescInput\" type=\"text\" data-l10n-id=\"pdfjs-editor-add-signature-description-input\"\n            tabindex=\"0\">\n          <button class=\"clearInputButton\" type=\"button\" tabindex=\"0\" aria-hidden=\"true\"></button>\n        </span>\n      </div>\n      <svg id=\"editSignatureView\" xmlns=\"http://www.w3.org/2000/svg\"></svg>\n    </div>\n    <div class=\"dialogButtonsGroup\">\n      <button id=\"editSignatureCancelButton\" type=\"button\" class=\"secondaryButton\" tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-add-signature-cancel-button\"></span></button>\n      <button id=\"editSignatureUpdateButton\" type=\"button\" class=\"primaryButton\" disabled tabindex=\"0\"><span\n          data-l10n-id=\"pdfjs-editor-edit-signature-update-button\"></span></button>\n    </div>\n  </div>\n</dialog>","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'pdf-error-message',\n    templateUrl: './pdf-error-message.component.html',\n    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;\n  eventBusName?: string;\n  closeOnClick?: boolean;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PdfShyButtonService {\n  public buttons: PdfShyButtonDescription[] = [];\n\n  private PDFViewerApplication!: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n    });\n  }\n\n  public add(button: PdfShyButtonComponent): void {\n    const 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 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);\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 = 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 element: ElementRef,\n    public notificationService: PDFNotificationService,\n    @Inject(PLATFORM_ID) private platformId: Object,\n    public pdfShyButtonService: PdfShyButtonService,\n    private ngxExtendedPdfViewerService: NgxExtendedPdfViewerService,\n    private 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          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    newElement.setAttribute('data-l10n-id', 'pdfjs-thumb-page-title');\n    newElement.setAttribute('data-l10n-args', thumbPageTitlePromiseOrPageL10nArgs);\n\n    this.replacePageNumberEverywhere(newElement, id.toString());\n\n    // Handle click on the thumbnail div itself\n    newElement.onclick = () => {\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.4.530+ 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<!-- #3111 modified by ngx-extended-pdf-viewer -->\n<!-- Updated to match PDF.js v5.4.530+ structure: direct div with checkbox + img (no anchor wrapper) -->\n<!-- Note: page-number attribute (not data-page-number) is used by PDF.js v5.4.530+ -->\n<ng-template #defaultThumbnail>\n  <div class=\"thumbnail pdf-viewer-template\" page-number=\"PAGE_NUMBER\">\n    <input type=\"checkbox\" tabindex=\"-1\" />\n    <img class=\"thumbnailImage\" role=\"button\" tabindex=\"-1\" alt=\"miniature of the page\" />\n  </div>\n</ng-template>\n<!-- #3111 end of modification by ngx-extended-pdf-viewer -->\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 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    [style.top]=\"sidebarPositionTop()\"\n  >\n    <div\n      id=\"additionalSidebarContainer\"\n      [class.hidden]=\"hideSidebarToolbar()\"\n    >\n      <pdf-sidebar-toolbar [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale()\"></pdf-sidebar-toolbar>\n    </div>\n    <pdf-sidebar-content\n      [customThumbnail]=\"customThumbnail()\"\n      (thumbnailDrawn)=\"thumbnailDrawn.emit($event)\"\n      [hideSidebarToolbar]=\"hideSidebarToolbar()\"\n      [mobileFriendlyZoomScale]=\"mobileFriendlyZoomScale()\"\n    ></pdf-sidebar-content>\n    <div id=\"viewsManagerResizer\" class=\"sidebarResizer\"></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 = [\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.includes(tag.split(/\\s|>/)[0]));\n    if (!legal) {\n      throw new Error('Illegal image for PDFShyButton. Only SVG images are allowed. Please use only the tags <svg> and <path>. ' + value);\n    }\n\n    // Return validated raw SVG - sanitization happens in updateButtonImage and pipe\n    return value;\n  });\n\n  constructor(\n    private pdfShyButtonServiceService: PdfShyButtonService,\n    private renderer: Renderer2,\n    notificationService: PDFNotificationService,\n    private 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        const childNodes = el.childNodes;\n        for (let child of childNodes) {\n          this.renderer.removeChild(el, child);\n        }\n      }\n    }\n  }\n\n  ngAfterContentInit() {\n    if (this.primaryToolbarId() === 'nestedComponent') {\n      this.renderContent = !!this.nestedContent();\n      console.log('renderContent', this.renderContent);\n    }\n  }\n}\n","@if (!onlySecondaryMenu()) {\n@if (nestedContent()) {\n<span (click)=\"onClick($event)\" onKeyDown=\"onClick($event)\" [class]=\"cssClass()\">\n  <ng-content></ng-content>\n</span>\n}\n@else {\n<button type=\"button\" [id]=\"primaryToolbarId()\" [class]=\"'toolbarButton ' + 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></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;\n\n  constructor(private 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 focusManagement: FocusManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private 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 focusManagement: FocusManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private 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 focusManagement: FocusManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private 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 focusManagement: FocusManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private 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 focusManagement: FocusManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private 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 focusManagement: FocusManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n    effect(() => {\n      this.PDFViewerApplication = notificationService.onPDFJSInitSignal();\n      if (this.PDFViewerApplication) {\n        this.onPdfJsInit();\n      }\n    });\n  }\n\n  private 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 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    // Effect to sync handTool input to isSelected\n    effect(() => {\n      this.isSelected = this.handTool();\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('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.HAND), 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    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","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;\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 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;\n\n  private PDFViewerApplication: IPDFViewerApplication | undefined;\n\n  constructor(public notificationService: PDFNotificationService, private 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      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      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 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 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    effect(() => {\n      this.isSelected = !this.handTool();\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('cursortoolchanged', ({ tool }: HandtoolChanged) => (this.isSelected = tool === PdfCursorTools.SELECT), 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    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;\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 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  }\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;\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 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;\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 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.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', ''));\n  }\n}\n","<span\n  id=\"scaleSelectContainer\"\n  [class]=\"showZoomDropdown() | responsiveCSSClass: 'hiddenTinyView'\"\n>\n  <select\n    id=\"scaleSelect\"\n    title=\"Zoom\"\n    data-l10n-id=\"pdfjs-zoom-select\"\n    [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 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 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 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>();\n\n  public findbarVisible = input<boolean>(false);\n\n  constructor(private elementRef: ElementRef) {\n  }\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-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 { PositioningService } from './dynamic-css/positioning.service';\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 { 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, pdfDefaultOptions } from './options/pdf-default-options';\nimport { PageViewModeType, ScrollModeChangedEvent, ScrollModeType } from './options/pdf-viewer';\nimport { IPDFViewerApplication, PDFDocumentProxy, PDFPageProxy } from './options/pdf-viewer-application';\nimport { IPDFViewerApplicationOptions } from './options/pdf-viewer-application-options';\nimport { VerbosityLevel } from './options/verbosity-level';\nimport { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';\nimport { PDFNotificationService } from './pdf-notification-service';\nimport { PdfSecondaryToolbarComponent } from './secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nimport { IOSCanvasOptimizationService } from './services/ios-canvas-optimization.service';\nimport { PdfSidebarComponent } from './sidebar/pdf-sidebar/pdf-sidebar.component';\n\nimport { DynamicCssComponent } from './dynamic-css/dynamic-css.component';\nimport { AnnotationEditorEvent } from './events/annotation-editor-layer-event';\nimport { AnnotationEditorLayerRenderedEvent } from './events/annotation-editor-layer-rendered-event';\nimport { AnnotationEditorEditorModeChangedEvent } from './events/annotation-editor-mode-changed-event';\nimport { AnnotationLayerRenderedEvent } from './events/annotation-layer-rendered-event';\nimport { LinkAnnotationsAddedEvent } from './events/link-annotations-added-event';\nimport { AttachmentLoadedEvent } from './events/attachment-loaded-event';\nimport { LayersLoadedEvent } from './events/layers-loaded-event';\nimport { OutlineLoadedEvent } from './events/outline-loaded-event';\nimport { ToggleSidebarEvent } from './events/toggle-sidebar-event';\nimport { XfaLayerRenderedEvent } from './events/xfa-layer-rendered-event';\nimport { NgxFormSupport } from './ngx-form-support';\nimport { NgxHasHeight } from './ngx-has-height';\nimport { NgxKeyboardManagerService } from './ngx-keyboard-manager.service';\nimport { PdfSidebarView } from './options/pdf-sidebar-views';\nimport { SpreadType } from './options/spread-type';\nimport { ZoomType } from './options/zoom-type';\nimport { PdfCspPolicyService } from './pdf-csp-policy.service';\nimport { PDFScriptLoaderService } from './pdf-script-loader.service';\nimport { ResponsiveVisibility } from './responsive-visibility';\n\ndeclare class ResizeObserver {\n  constructor(param: () => void);\n  public disconnect(): 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) & {};\nexport type PageType = (number | undefined) & {};\nexport type NamedDestType = (string | undefined) & {};\nexport type PasswordType = (string | undefined) & {};\n\nexport function isIOS(): boolean {\n  if (typeof window === 'undefined') {\n    return false;\n  }\n\n  const userAgent = navigator?.userAgent;\n  if (!userAgent) {\n    return false;\n  }\n\n  return (\n    /iPad|iPhone|iPod/.test(userAgent) ||\n    // iPad on iOS 13+ detection (reports as Mac)\n    (userAgent.includes('Mac') && 'ontouchend' in document)\n  );\n}\n\n@Component({\n  selector: 'ngx-extended-pdf-viewer',\n  templateUrl: './ngx-extended-pdf-viewer.component.html',\n  styleUrls: ['./ngx-extended-pdf-viewer.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false,\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  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 _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  // @ts-ignore TS6133 - Used for side effects only\n  private _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    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      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  }\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>();\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 _srcEffect = effect(() => {\n    const url = this.src();\n    if (typeof 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 this.convertBlobToUint8Array(url);\n        this._src = converted.buffer;\n        if (this.service.ngxExtendedPdfViewerInitialized && this._src !== this._lastOpenedSrc) { // #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.service.ngxExtendedPdfViewerInitialized) {\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) { // #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 _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        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 _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 _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(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  private async 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\n  public base64Src: InputSignal<string | null | undefined> = input();\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private 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);\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;\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' });\n  public heightInput = input<string | undefined>('100%', { alias: 'height' });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _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(undefined);\n\n  public pdfBackgroundColor = input(undefined);\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _pdfBackgroundColorEffect = effect(() => {\n    const color = this.pdfBackgroundColor();\n    // Skip during initialization — the initial value is set in the init code path\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _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.service.ngxExtendedPdfViewerInitialized) 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 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 _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 _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  // #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 _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 _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 _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.service.ngxExtendedPdfViewerInitialized) {\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  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 _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.service.ngxExtendedPdfViewerInitialized) 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  public get pdfJsVersion(): string {\n    return getVersionSuffix(pdfDefaultOptions.assetsFolder);\n  }\n\n  public get majorMinorPdfJsVersion(): string {\n    const fullVersion = this.pdfJsVersion;\n    const pos = fullVersion.lastIndexOf('.');\n    return fullVersion.substring(0, pos).replace('.', '-');\n  }\n\n  public get enableSignatureEditor(): boolean {\n    return pdfDefaultOptions.enableSignatureEditor;\n  }\n\n  public get enablePageReordering(): boolean {\n    return pdfDefaultOptions.enablePageReordering;\n  }\n\n  /**\n   * This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.\n   * This attribute is a string with a percent character at the end (e.g. \"150%\").\n   */\n  public mobileFriendlyZoom = input<string>('100%');\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _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 _zoomEffect = effect(() => {\n    const currentZoom = this.zoom(); // Track zoom signal\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _maxZoomEffect = effect(() => {\n    const maxZoom = this.maxZoom();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _minZoomEffect = effect(() => {\n    const minZoom = this.minZoom();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _findbarVisibleEffect = effect(() => {\n    const visible = this.findbarVisible();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 {\n      // Only close if actually open\n      if (PDFViewerApplication.findBar.opened) {\n        PDFViewerApplication.findBar.close();\n      }\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _propertiesDialogVisibleEffect = effect(() => {\n    const visible = this.propertiesDialogVisible();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 {\n      // Only close if actually open\n      if (PDFViewerApplication.overlayManager.active === PDFViewerApplication.pdfDocumentProperties.dialog) {\n        PDFViewerApplication.pdfDocumentProperties.close();\n      }\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _pageLabelEffect = effect(() => {\n    const pageLabel = this.pageLabel();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _rotationEffect = effect(() => {\n    const rotation = this.rotation();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _activeSidebarViewEffect = effect(() => {\n    const activeSidebarView = this.activeSidebarView();\n    const sidebarVisible = this.sidebarVisible();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _filenameForDownloadEffect = effect(() => {\n    const filename = this.filenameForDownload();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _nameddestEffect = effect(() => {\n    const nameddest = this.nameddest();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _spreadEffect = effect(() => {\n    const spread = this.spread();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _secondaryMenuEmptyEffect = effect(() => {\n    this.service.secondaryMenuIsEmpty();\n    this.hideToolbarIfItIsEmpty();\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _enableDragAndDropEffect = effect(() => {\n    const enableDragAndDrop = this.enableDragAndDrop();\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _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(); // Track signal\n    void this.ignoreKeys(); // Track signal\n    void this.acceptKeys(); // Track signal\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 _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(); // Track signal\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 _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        const zoomEvent = {\n          source: viewer,\n          // tslint:disable-next-line:no-bitwise\n          scale: (Number(this.zoom()) | 100) / 100,\n          presetValue: this.zoom(),\n        } as ScaleChangingEvent;\n        PDFViewerApplication.eventBus?.dispatch('scalechanging', zoomEvent);\n      }\n    }\n  });\n\n  // @ts-ignore TS6133 - Used for side effects only\n  private _showUnverifiedSignaturesEffect = effect(() => {\n    const showUnverifiedSignatures = this.showUnverifiedSignatures;\n    if (typeof window === 'undefined') return;\n    if (!this.service.ngxExtendedPdfViewerInitialized) 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 _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    void this.customFindbar; // Track signal\n    void this.customFindbarButtons; // Track signal\n    void this.customFindbarInputArea; // Track signal\n    void this.customToolbar(); // Track signal\n    if (typeof window === 'undefined') return;\n\n    if (this.dummyComponents) {\n      this.dummyComponents()?.addMissingStandardWidgets();\n    }\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 async ngOnInit() {\n    this.hideToolbarIfItIsEmpty();\n    if (isPlatformBrowser(this.platformId)) {\n      this.ngZone.runOutsideAngular(() => {\n        this.initializationPromise = this.initialize;\n        this.initializationPromise();\n      });\n    }\n  }\n\n  private async initialize(): Promise<void> {\n    try {\n      await this.waitForRootElement();\n\n      if (this.destroyInitialization) return;\n\n      if (isPlatformBrowser(this.platformId)) {\n        this.addTranslationsUnlessProvidedByTheUser();\n        await this.waitUntilOldComponentIsGone();\n        if (this.destroyInitialization) return;\n\n        await this.pdfScriptLoaderService.ensurePdfJsHasBeenLoaded(this.useInlineScripts(), this.forceUsingLegacyES5(), this.forceFullReloadOfJavaScriptCode());\n        if (this.destroyInitialization) return;\n\n        if (this.formSupport) {\n          this.formSupport.registerFormSupportWithPdfjs(this.pdfScriptLoaderService.PDFViewerApplication);\n          this.keyboardManager.registerKeyboardListener(this.pdfScriptLoaderService.PDFViewerApplication);\n          this.formSupport.ngZone = this.ngZone;\n          this.formSupport.cdr = this.cdr;\n        }\n        this.pdfScriptLoaderService.PDFViewerApplication.cspPolicyService = this.cspPolicyService;\n\n        // Initialize iOS canvas optimization service with PDFViewerApplication\n        this.iosCanvasService.initialize(this.pdfScriptLoaderService.PDFViewerApplication);\n\n        this.ngZone.runOutsideAngular(() => this.doInitPDFViewer());\n      }\n    } catch (error) {\n      console.error('Initialization failed:', error);\n    }\n  }\n\n  private async waitForRootElement(): Promise<void> {\n    return new Promise<void>((resolve, reject) => {\n      const checkRootElement = () => {\n        if (this.destroyInitialization) {\n          reject(new Error('Component destroyed'));\n          return;\n        }\n\n        if (this.root()?.nativeElement?.offsetParent) {\n          resolve();\n        } else {\n          this.checkRootElementTimeout = setTimeout(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.service.ngxExtendedPdfViewerInitialized) {\n          clearInterval(interval);\n          resolve();\n        }\n      }, 10);\n    });\n  }\n\n  private assignTabindexes() {\n    if (this.startTabindex) {\n      const r = this.root()?.nativeElement.cloneNode(true) as HTMLElement;\n      r.classList.add('offscreen');\n      this.showElementsRecursively(r);\n      document.body.appendChild(r);\n      const elements = this.collectElementPositions(r, this.root()?.nativeElement, []);\n      document.body.removeChild(r);\n      const topRightGreaterThanBottomLeftComparator = (a: 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.service.ngxExtendedPdfViewerInitialized) {\n      // tslint:disable-next-line:quotemark\n      console.error(\"You're trying to open two instances of the PDF viewer. Most likely, this will result in errors.\");\n    }\n    this.overrideDefaultSettings();\n    const onLoaded = () => {\n      if (!this.pdfScriptLoaderService.PDFViewerApplication.eventBus) {\n        console.error(\"Eventbus is null? Let's try again.\");\n        setTimeout(\n          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          this.dummyComponents()?.addMissingStandardWidgets();\n          if (this.pdfScriptLoaderService.PDFViewerApplicationOptions) {\n            const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n            (globalThis as any).PDFViewerApplicationOptions = PDFViewerApplicationOptions;\n          }\n\n          this.pdfScriptLoaderService.webViewerLoad(this.cspPolicyService);\n\n          const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n          PDFViewerApplication.appConfig.defaultUrl = ''; // IE bugfix\n          const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n\n          PDFViewerApplicationOptions.set('enableDragAndDrop', this.enableDragAndDrop());\n          PDFViewerApplicationOptions.set('localeProperties', { lang: this.language() });\n          PDFViewerApplicationOptions.set('imageResourcesPath', this.imageResourcesPath());\n          PDFViewerApplicationOptions.set('minZoom', this.minZoom());\n          PDFViewerApplicationOptions.set('maxZoom', this.maxZoom());\n          PDFViewerApplicationOptions.set('pageViewMode', this.pageViewMode());\n          PDFViewerApplicationOptions.set('verbosity', this.logLevel());\n          PDFViewerApplicationOptions.set('pdfBackgroundColor', this.pdfBackgroundColor());\n          if (this.theme() === 'dark') {\n            PDFViewerApplicationOptions.set('viewerCssTheme', 2);\n          } else if (this.theme() === 'light') {\n            PDFViewerApplicationOptions.set('viewerCssTheme', 1);\n          }\n\n          PDFViewerApplication.isViewerEmbedded = true;\n          if (PDFViewerApplication.printKeyDownListener) {\n            window.addEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n          }\n\n          const body = document.getElementsByTagName('body');\n          if (body[0]) {\n            const topLevelElements = body[0].children;\n            for (let i = topLevelElements.length - 1; i >= 0; i--) {\n              const e = topLevelElements.item(i);\n              if (e && e.id === 'printContainer') {\n                body[0].removeChild(e);\n              }\n            }\n          }\n          const pc = document.getElementById('printContainer');\n          if (pc) {\n            document.getElementsByTagName('body')[0].appendChild(pc);\n          }\n        }\n      }),\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 = [\n      'needsES5',\n      'rangeChunkSize',\n      '_internalFilenameSuffix',\n      'assetsFolder',\n      'doubleTapZoomFactor',\n      'doubleTapZoomsInHandMode',\n      'doubleTapZoomsInTextSelectionMode',\n      'doubleTapResetsZoomOnSecondDoubleTap',\n    ];\n    for (const key in pdfDefaultOptions) {\n      if (!optionsToIgnore.includes(key)) {\n        const option = (pdfDefaultOptions 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.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        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('annotation-editor-event', (x: AnnotationEditorEvent) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          if (this.destroyInitialization) return;\n          this.annotationEditorEvent.emit(x);\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('toggleSidebar', (x: ToggleSidebarEvent) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.sidebarVisible.set(x.visible);\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('textlayerrendered', (x: TextLayerRenderedEvent) => {\n      queueMicrotask(this.asyncWithCD(() => this.textLayerRendered.emit(x)));\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('annotationeditormodechanged', (x: AnnotationEditorEditorModeChangedEvent) => {\n      // we're using a timeout here to make sure the editor is already visible\n      // when the event is caught. Pdf.js fires it a bit early.\n      setTimeout(\n        this.asyncWithCD(() => {\n          if (this.destroyInitialization) return;\n          this.annotationEditorModeChanged.emit(x);\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('scrollmodechanged', (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    }, opts);\n    // #2673 Listen for pageViewMode changes to restore height when leaving infinite-scroll\n    PDFViewerApplication.eventBus.on('pageviewmodechanged', (x: any) => {\n      if (x.mode === 'single') {\n        // Restore height after switching away from infinite-scroll\n        setTimeout(\n          this.asyncWithCD(() => {\n            this.dynamicCSSComponent()?.removeScrollbarInInfiniteScrollMode(true, this.pageViewMode(), this.primaryMenuVisible, this, this.logLevel());\n          }),\n        );\n      }\n    }, opts);\n    // #2673 end of modification\n    PDFViewerApplication.eventBus.on('progress', (x: ProgressBarEvent) => {\n      queueMicrotask(this.asyncWithCD(() => this.progress.emit(x)));\n    }, opts);\n    PDFViewerApplication.eventBus.on('findbarclose', () => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.findbarVisible.set(false);\n        }),\n      );\n    }, opts);\n    PDFViewerApplication.eventBus.on('findbaropen', () => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.findbarVisible.set(true);\n        }),\n      );\n    }, opts);\n    PDFViewerApplication.eventBus.on('propertiesdialogclose', () => {\n      this.propertiesDialogVisible.set(false);\n    }, opts);\n    PDFViewerApplication.eventBus.on('propertiesdialogopen', () => {\n      this.propertiesDialogVisible.set(true);\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('pagesloaded', (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    }, opts);\n    PDFViewerApplication.eventBus.on('pagerendered', (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    }, opts);\n    PDFViewerApplication.eventBus.on('pagerender', (x: PageRenderEvent) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.pageRender.emit(x);\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('download', (x: PdfDownloadedEvent) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.pdfDownloaded.emit(x);\n        }),\n      );\n    }, opts);\n    PDFViewerApplication.eventBus.on('scalechanging', (x: ScaleChangingEvent) => {\n      // #3060 modified by ngx-extended-pdf-viewer - diagnostic logging for iOS scale bug\n      if (x.scale < 0.15 || (x.previousScale && x.previousScale < 0.15)) {\n        console.log(\n          `[#3060 DEBUG] scalechanging event: scale=${x.scale}, previousScale=${x.previousScale}, presetValue=${x.presetValue}, this.zoom=${this.zoom()}, source=${x.source?.constructor?.name}`,\n        );\n      }\n      // #3060 end of modification by ngx-extended-pdf-viewer\n\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 = x.scale * 100;\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    }, opts);\n\n    PDFViewerApplication.eventBus.on('rotationchanging', (x: PagesRotationEvent) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.rotation.set(x.pagesRotation as 0 | 90 | 180 | 270);\n        }),\n      );\n    }, opts);\n    PDFViewerApplication.eventBus.on('fileinputchange', (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    }, opts);\n    PDFViewerApplication.eventBus.on('cursortoolchanged', (x: HandtoolChanged) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.handTool.set(x.tool === PdfCursorTools.HAND);\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('sidebarviewchanged', (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          if (this.sidebarComponent) {\n            this.sidebarComponent()?.showToolbarWhenNecessary();\n          }\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('storedvaluesavailable', (event) => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          this.handleStoredValuesAvailable(event);\n        }),\n      );\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('documentloaded', (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    }, opts);\n\n    PDFViewerApplication.eventBus.on('spreadmodechanged', (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    }, opts);\n\n    const hideSidebarToolbar = () => {\n      queueMicrotask(\n        this.asyncWithCD(() => {\n          if (this.sidebarComponent) {\n            this.sidebarComponent()?.showToolbarWhenNecessary();\n          }\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('annotationlayerrendered', (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    }, opts);\n    PDFViewerApplication.eventBus.on('linkannotationsadded', (event: LinkAnnotationsAddedEvent) =>\n      queueMicrotask(this.asyncWithCD(() => this.linkAnnotationsAdded.emit(event))),\n    opts);\n    PDFViewerApplication.eventBus.on('annotationeditorlayerrendered', (event) =>\n      queueMicrotask(this.asyncWithCD(() => this.annotationEditorLayerRendered.emit(event))),\n    opts);\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('presentationmodechanged', () => {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      PDFViewerApplication?.pdfViewer?.destroyBookMode();\n    }, opts);\n\n    PDFViewerApplication.eventBus.on('updatefindcontrolstate', (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    }, opts);\n    PDFViewerApplication.eventBus.on('updatefindmatchescount', (x: FindResult) => {\n      x.matchesCount.matches = PDFViewerApplication.findController._pageMatches ?? [];\n      x.matchesCount.matchesLength = PDFViewerApplication.findController._pageMatchesLength ?? [];\n      queueMicrotask(\n        this.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    }, opts);\n\n    PDFViewerApplication.eventBus.on('pagechanging', () => {\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    }, opts);\n  }\n\n  public async openPDF2(): Promise<void> {\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      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    PDFViewerApplication.eventBus.dispatch('switchcursortool', { tool: this.handTool() ? 1 : 0 });\n  }\n\n  public doReplaceBrowserPrint(useCustomPrintOfPdfJS: boolean): void {\n    if (useCustomPrintOfPdfJS) {\n      const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n      if (PDFViewerApplication?.printPdf) {\n        window.print = PDFViewerApplication.printPdf.bind(PDFViewerApplication);\n      }\n    } else if (this.originalPrint && !this.originalPrint.toString().includes('printPdf')) {\n      window.print = this.originalPrint;\n    }\n  }\n\n  public async ngOnDestroy(): Promise<void> {\n    this.destroyInitialization = true;\n    if (this.checkRootElementTimeout) {\n      clearTimeout(this.checkRootElementTimeout);\n    }\n    if (this.initializationPromise) {\n      try {\n        await this.initializationPromise;\n      } catch (e) {}\n    }\n\n    this.notificationService.onPDFJSInitSignal.set(undefined);\n    if (this.resizeObserver) {\n      this.resizeObserver.disconnect();\n    }\n    // do not run this code on the server\n    if (typeof window !== 'undefined') {\n      const pc = document.getElementById('printContainer');\n      if (pc) {\n        pc.remove();\n      }\n\n      // Restore original color-scheme to avoid polluting the global document\n      if (this.originalColorScheme !== null) {\n        const docStyle = document.documentElement.style;\n        if (this.originalColorScheme === '') {\n          docStyle.removeProperty('color-scheme');\n        } else {\n          docStyle.setProperty('color-scheme', this.originalColorScheme);\n        }\n        this.originalColorScheme = null;\n      }\n    }\n\n    // do not run this code on the server\n    if (typeof window !== 'undefined') {\n      const originalPrint = this.originalPrint;\n      if (window && originalPrint && !originalPrint.toString().includes('printPdf')) {\n        window.print = originalPrint;\n      }\n    }\n\n    const PDFViewerApplication: IPDFViewerApplication = this.pdfScriptLoaderService.PDFViewerApplication;\n\n    if (PDFViewerApplication) {\n      // #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      // #3131 Unregister all eventBus listeners in one call via AbortController.\n      this.eventBusAbortController?.abort();\n      this.eventBusAbortController = null;\n\n      // #802 clear the form data; otherwise the \"download\" dialogs opens\n      PDFViewerApplication.pdfDocument?.annotationStorage?.resetModified();\n      this.formSupport?.reset();\n      (this.formSupport as any) = undefined;\n      (PDFViewerApplication.onError as any) = undefined;\n\n      try {\n        await PDFViewerApplication.close();\n      } catch (error) {\n        // just ignore it\n        // for example, the secondary toolbar may have not been initialized yet, so\n        // trying to destroy it result in errors\n      }\n      if (PDFViewerApplication.printKeyDownListener) {\n        removeEventListener('keydown', PDFViewerApplication.printKeyDownListener, true);\n      }\n      // #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  }\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 (!isNaN(Number(zoomAsNumber))) {\n        zoomAsNumber = Number(zoomAsNumber) / 100;\n      }\n      if (!zoomAsNumber) {\n        if (!PDFViewerApplication.store) {\n          // It's difficult to prevent calling this method to early, so we need this check.\n          // setZoom() is called later again, when the PDF document has been loaded and its\n          // fingerprint has been calculated.\n        } else {\n          const userSetting = await PDFViewerApplication.store.get('zoom');\n          if (userSetting) {\n            if (!isNaN(Number(userSetting))) {\n              zoomAsNumber = Number(userSetting) / 100;\n            } else {\n              zoomAsNumber = userSetting;\n            }\n          } else {\n            zoomAsNumber = 'auto';\n          }\n        }\n      }\n\n      if (PDFViewerApplication) {\n        const PDFViewerApplicationOptions: IPDFViewerApplicationOptions = this.pdfScriptLoaderService.PDFViewerApplicationOptions;\n        PDFViewerApplicationOptions.set('defaultZoomValue', zoomAsNumber);\n      }\n\n      const rootNativeElement = rootElement?.nativeElement as HTMLElement | undefined;\n      if (!rootNativeElement) return;\n      const scaleDropdownField = rootNativeElement.querySelector('#scaleSelect') as HTMLSelectElement | undefined;\n      if (scaleDropdownField) {\n        if (this.zoom() === 'auto' || this.zoom() === 'page-fit' || this.zoom() === 'page-actual' || this.zoom() === 'page-width') {\n          scaleDropdownField.value = this.zoom() as string;\n        } else {\n          scaleDropdownField.value = 'custom';\n          if (scaleDropdownField.options) {\n            for (const option of scaleDropdownField.options as any) {\n              if (option.value === 'custom') {\n                option.textContent = `${Math.round(Number(zoomAsNumber) * 100_000) / 1000}%`;\n              }\n            }\n          }\n        }\n      }\n\n      if (PDFViewerApplication.pdfViewer) {\n        // 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            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        if (this.secondaryToolbarComponent) {\n          this.secondaryToolbarComponent()?.checkVisibility();\n        }\n        if (this.dynamicCSSComponent) {\n          this.dynamicCSSComponent()?.updateToolbarWidth();\n        }\n      }\n      this.dynamicCSSComponent()?.checkHeight(this, this.logLevel());\n    }\n    this.dynamicCSSComponent()?.removeScrollbarInInfiniteScrollMode(false, this.pageViewMode(), this.primaryMenuVisible, this, this.logLevel());\n  }\n\n  @HostListener('contextmenu')\n  public onContextMenu(): boolean {\n    return this.contextMenuAllowed();\n  }\n\n  private async pageHasVisibleSignature(page: PDFPageProxy): Promise<boolean> {\n    const annotations = await page.getAnnotations();\n    const signature = annotations.find((a) => a.fieldType === 'Sig');\n    if (signature) {\n      const rect = signature?.rect;\n      if (rect && rect.length === 4 && rect[2] - rect[0] > 0 && rect[3] - rect[1] > 0 && !signature.hidden) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public async scrollSignatureWarningIntoView(pdf: PDFDocumentProxy): Promise<void> {\n    /** This method has been inspired by https://medium.com/factory-mind/angular-pdf-forms-fa72b15c3fbd. Thanks, Jonny Fox! */\n    this.hasSignature = false;\n\n    for (let i = 1; i <= pdf?.numPages; i++) {\n      // track the current page\n      const page = await pdf.getPage(i);\n\n      if (await this.pageHasVisibleSignature(page)) {\n        this.hasSignature = true;\n        break; // stop looping through the pages as soon as we find a signature\n      }\n    }\n    if (this.hasSignature) {\n      queueMicrotask(\n        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              [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 { 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    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    PdfEditorComponent,\n    PdfEditSignatureDialogComponent,\n    PdfEditorSignatureComponent,\n    PdfErrorMessageComponent,\n    PdfEvenSpreadComponent,\n    PdfFindbarComponent,\n    PdfFindbarMessageContainerComponent,\n    PdfFindButtonComponent,\n    PdfFindEntireWordComponent,\n    PdfFindHighlightAllComponent,\n    PdfFindInputAreaComponent,\n    PdfFindMatchCaseComponent,\n    PdfFindNextComponent,\n    PdfFindPreviousComponent,\n    PdfFindResultsCountComponent,\n    PdfFirstPageComponent,\n    PdfHandToolComponent,\n    PdfHighlightEditorComponent,\n    PdfHorizontalScrollComponent,\n    PdfInfiniteScrollComponent,\n    PdfLastPageComponent,\n    PdfLightThemeComponent,\n    PdfMatchDiacriticsComponent,\n    PdfMoveDownComponent,\n    PdfMoveUpComponent,\n    PdfNextPageComponent,\n    PdfNoSpreadComponent,\n    PdfOddSpreadComponent,\n    PdfOpenFileComponent,\n    PdfPageNumberComponent,\n    PdfPagingAreaComponent,\n    PdfPasswordDialogComponent,\n    PdfPreparePrintingDialogComponent,\n    PdfPresentationModeComponent,\n    PdfPreviousPageComponent,\n    PdfPrintComponent,\n    PdfRotatePageComponent,\n    PdfSearchInputFieldComponent,\n    PdfSecondaryToolbarComponent,\n    PdfSelectToolComponent,\n    PdfShyButtonComponent,\n    PdfSidebarComponent,\n    PdfSidebarContentComponent,\n    PdfSidebarToolbarComponent,\n    PdfSinglePageModeComponent,\n    PdfStampEditorComponent,\n    PdfTextEditorComponent,\n    PdfToggleSecondaryToolbarComponent,\n    PdfToggleSidebarComponent,\n    PdfToolbarComponent,\n    PdfVerticalScrollModeComponent,\n    PdfWrappedScrollModeComponent,\n    PdfZoomDropdownComponent,\n    PdfZoomInComponent,\n    PdfZoomOutComponent,\n    PdfZoomToolbarComponent,\n    ResponsiveCSSClassPipe,\n  ],\n})\nexport class NgxExtendedPdfViewerModule {}\n","/*\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {IL10n} l10n - Localization service.\n * @property {boolean} [enableScripting]\n * @property {Promise<boolean>} [hasJSActionsPromise]\n * @property {Promise<Object<string, Array<Object>> | null>}\n *   [fieldObjectsPromise]\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n * @property {TextAccessibilityManager} [accessibilityManager]\n */\n\nimport { AnnotationStorage } from './pdf-annotation-storage';\nimport { PageViewport } from './pdf-page-view-port';\nimport { PDFPageProxy } from './pdf-viewer-application';\n\nexport type AnnotationLayerBuilderOptions = {\n  pdfPage: PDFPageProxy;\n  annotationStorage?: AnnotationStorage | undefined;\n  /**\n   * - Path for image resources, mainly\n   * for annotation icons. Include trailing slash.\n   */\n  imageResourcesPath?: string | undefined;\n  renderForms: boolean;\n  linkService: any; // IPDFLinkService;\n  downloadManager?: any /*import('./interfaces').IDownloadManager */ | undefined;\n  enableScripting?: boolean | undefined;\n  hasJSActionsPromise?: Promise<boolean> | undefined;\n  fieldObjectsPromise?:\n    | Promise<{\n        [x: string]: Object[];\n      } | null>\n    | undefined;\n  annotationCanvasMap?: Map<string, HTMLCanvasElement> | undefined;\n  accessibilityManager?: any /*import('./text_accessibility.js').TextAccessibilityManager */ | undefined;\n  annotationEditorUIManager?: any /* import('../src/pdf').AnnotationEditorUIManager */ | undefined;\n  onAppend?: Function | undefined;\n};\n\nexport type AnnotationLayerBuilderRenderOptions = {\n  viewport: PageViewport;\n  /**\n   * - The default value is \"display\".\n   */\n  intent?: string | undefined;\n  structTreeLayer?: any /* import('./struct_tree_layer_builder.js').StructTreeLayerBuilder */ | undefined;\n};\n\nexport interface AnnotationLayerBuilder {\n  pageDiv: HTMLDivElement;\n  pdfPage: PDFPageProxy;\n  annotationStorage: AnnotationStorage;\n  imageResourcesPath: string;\n  renderForms: boolean;\n  enableScripting: boolean;\n  annotationCanvasMap: Map<string, HTMLCanvasElement>;\n  render({ viewport, intent, structTreeLayer }: AnnotationLayerBuilderRenderOptions): Promise<void>;\n}\n","export const LinkTarget = {\n  NONE: 0,\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4\n};\n","export const NEED_PASSWORD = 1;\nexport const INCORRECT_PASSWORD = 2;\n\nexport interface PasswordPrompt {\n  /**\n   * Sets the callback function that, in turn, checks whether the password is correct.\n   * Close the password dialog before calling the callback function. If the password\n   * is wrong, it opens the password prompt dialog again.\n   *\n   * If you never call the callback, that's the same as clicking \"cancel\" on the password prompt.\n   * In other words, that's the way to go if you don't want to pass the password for some reason.\n   *\n   * @param updateCallback Function you can call to pass and verify the password\n   * @param reason Why is the password prompt requested?\n   * 1 = A password is required, but wasn't provided; 2 = the wrong password\n   * has been provided, so let's try again\n   */\n  setUpdateCallback(updateCallback: (password: string) => void, reason: 1 | 2): 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 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 = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || 'Z';\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n    // Universal time relation 'Z' means that the local time is equal to the\n    // universal time, whereas the relations '+'/'-' indicate that the local\n    // time is later respectively earlier than the universal time. Every date\n    // is normalized to universal time.\n    if (universalTimeRelation === '-') {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === '+') {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n}\n","/**\n * 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 { 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-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-document-properties-extractor';\nexport * from './lib/pdf-notification-service';\nexport * from './lib/pdf-script-loader.service';\nexport * from './lib/responsive-visibility';\nexport * from './lib/secondary-toolbar/pdf-secondary-toolbar/pdf-secondary-toolbar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-content/pdf-sidebar-content.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar-toolbar/pdf-sidebar-toolbar.component';\nexport * from './lib/sidebar/pdf-sidebar/pdf-sidebar.component';\nexport * from './lib/theme/acroform-default-theme/pdf-acroform-default-theme.component';\nexport * from './lib/theme/pdf-dark-theme/pdf-dark-theme.component';\nexport * from './lib/theme/pdf-light-theme/pdf-light-theme.component';\nexport * from './lib/toolbar/pdf-book-mode/pdf-book-mode.component';\nexport * from './lib/toolbar/pdf-comment-editor/pdf-comment-editor.component';\nexport * from './lib/toolbar/pdf-context-menu/pdf-context-menu.component';\nexport * from './lib/toolbar/pdf-document-properties/pdf-document-properties.component';\nexport * from './lib/toolbar/pdf-download/pdf-download.component';\nexport * from './lib/toolbar/pdf-draw-editor/pdf-draw-editor.component';\nexport * from './lib/toolbar/pdf-editor-signature/pdf-editor-signature.component';\nexport * from './lib/toolbar/pdf-editor/pdf-editor.component';\nexport * from './lib/toolbar/pdf-even-spread/pdf-even-spread.component';\nexport * from './lib/toolbar/pdf-find-button/pdf-find-button.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-input-area/pdf-find-input-area.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-next/pdf-find-next.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-find-previous/pdf-find-previous.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-message-container/pdf-findbar-message-container.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-highlight-all/pdf-find-highlight-all.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-match-case/pdf-find-match-case.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-multiple/pdf-find-multiple.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-one-container/pdf-find-regexp/pdf-find-regexp.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-three-container/pdf-find-results-count/pdf-find-results-count.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-find-entire-word/pdf-find-entire-word.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar-options-two-container/pdf-match-diacritics/pdf-match-diacritics.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-findbar.component';\nexport * from './lib/toolbar/pdf-findbar/pdf-search-input-field/pdf-search-input-field.component';\nexport * from './lib/toolbar/pdf-hand-tool/pdf-hand-tool.component';\nexport * from './lib/toolbar/pdf-highlight-editor/pdf-highlight-editor.component';\nexport * from './lib/toolbar/pdf-horizontal-scroll/pdf-horizontal-scroll.component';\nexport * from './lib/toolbar/pdf-infinite-scroll/pdf-infinite-scroll.component';\nexport * from './lib/toolbar/pdf-move-down/pdf-move-down.component';\nexport * from './lib/toolbar/pdf-move-up/pdf-move-up.component';\nexport * from './lib/toolbar/pdf-no-spread/pdf-no-spread.component';\nexport * from './lib/toolbar/pdf-odd-spread/pdf-odd-spread.component';\nexport * from './lib/toolbar/pdf-open-file/pdf-open-file.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-first-page/pdf-first-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-last-page/pdf-last-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-next-page/pdf-next-page.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-page-number/pdf-page-number.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-paging-area.component';\nexport * from './lib/toolbar/pdf-paging-area/pdf-previous-page/pdf-previous-page.component';\nexport * from './lib/toolbar/pdf-presentation-mode/pdf-presentation-mode.component';\nexport * from './lib/toolbar/pdf-print/pdf-print.component';\nexport * from './lib/toolbar/pdf-rotate-page/pdf-rotate-page.component';\nexport * from './lib/toolbar/pdf-select-tool/pdf-select-tool.component';\nexport * from './lib/toolbar/pdf-shy-button/pdf-shy-button.component';\nexport * from './lib/toolbar/pdf-single-page-mode/pdf-single-page-mode.component';\nexport * from './lib/toolbar/pdf-stamp-editor/pdf-stamp-editor.component';\nexport * from './lib/toolbar/pdf-text-editor/pdf-text-editor.component';\nexport * from './lib/toolbar/pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component';\nexport * from './lib/toolbar/pdf-toggle-sidebar/pdf-toggle-sidebar.component';\nexport * from './lib/toolbar/pdf-toolbar/pdf-toolbar.component';\nexport * from './lib/toolbar/pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component';\nexport * from './lib/toolbar/pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-in/pdf-zoom-in.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-out/pdf-zoom-out.component';\nexport * from './lib/toolbar/pdf-zoom-toolbar/pdf-zoom-toolbar.component';\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.PdfHorizontalScrollComponent","i10.PdfInfiniteScrollComponent","i11.PdfMoveDownComponent","i12.PdfMoveUpComponent","i13.PdfNoSpreadComponent","i14.PdfOddSpreadComponent","i15.PdfOpenFileComponent","i16.PdfPagingAreaComponent","i17.PdfPresentationModeComponent","i18.PdfPrintComponent","i19.PdfRotatePageCwComponent","i20.PdfRotatePageCcwComponent","i21.PdfSelectToolComponent","i22.PdfSinglePageModeComponent","i23.PdfToggleSecondaryToolbarComponent","i24.PdfToggleSidebarComponent","i25.PdfVerticalScrollModeComponent","i26.PdfWrappedScrollModeComponent","i27.PdfZoomToolbarComponent","i2","i4.PDFScriptLoaderService","i5.NgxKeyboardManagerService","i6.PdfCspPolicyService","i7.IOSCanvasOptimizationService","i8.DynamicCssComponent","i9.PdfAcroformDefaultThemeComponent","i10.AddSignatureDialogComponent","i11.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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"}