ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
484 lines (483 loc) • 41.7 kB
TypeScript
import { PlatformLocation } from '@angular/common';
import { ChangeDetectorRef, ElementRef, InputSignal, ModelSignal, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef } from '@angular/core';
import { FindResultMatchesCount, FindState } from './events/find-result';
import { PageRenderEvent } from './events/page-render-event';
import { PageRenderedEvent } from './events/page-rendered-event';
import { PagesLoadedEvent } from './events/pages-loaded-event';
import { PdfDownloadedEvent } from './events/pdf-downloaded-event';
import { PdfLoadedEvent } from './events/pdf-loaded-event';
import { PdfLoadingStartsEvent } from './events/pdf-loading-starts-event';
import { PdfThumbnailDrawnEvent } from './events/pdf-thumbnail-drawn-event';
import { ProgressBarEvent } from './events/progress-bar-event';
import { TextLayerRenderedEvent } from './events/textlayer-rendered';
import { NgxExtendedPdfViewerService } from './ngx-extended-pdf-viewer.service';
import { PageViewModeType, ScrollModeType } from './options/pdf-viewer';
import { PDFDocumentProxy } from './options/pdf-viewer-application';
import { VerbosityLevel } from './options/verbosity-level';
import { PdfDummyComponentsComponent } from './pdf-dummy-components/pdf-dummy-components.component';
import { PDFNotificationService } from './pdf-notification-service';
import { IOSCanvasOptimizationService } from './services/ios-canvas-optimization.service';
import { AnnotationEditorEvent } from './events/annotation-editor-layer-event';
import { AnnotationEditorLayerRenderedEvent } from './events/annotation-editor-layer-rendered-event';
import { AnnotationEditorEditorModeChangedEvent } from './events/annotation-editor-mode-changed-event';
import { AnnotationLayerRenderedEvent } from './events/annotation-layer-rendered-event';
import { AttachmentLoadedEvent } from './events/attachment-loaded-event';
import { LayersLoadedEvent } from './events/layers-loaded-event';
import { LinkAnnotationsAddedEvent } from './events/link-annotations-added-event';
import { OutlineLoadedEvent } from './events/outline-loaded-event';
import { XfaLayerRenderedEvent } from './events/xfa-layer-rendered-event';
import { NgxHasHeight } from './ngx-has-height';
import { NgxKeyboardManagerService } from './ngx-keyboard-manager.service';
import { PdfSidebarView } from './options/pdf-sidebar-views';
import { SpreadType } from './options/spread-type';
import { ZoomType } from './options/zoom-type';
import { PdfCspPolicyService } from './pdf-csp-policy.service';
import { PDFScriptLoaderService } from './pdf-script-loader.service';
import { ResponsiveVisibility } from './responsive-visibility';
import * as i0 from "@angular/core";
export interface FormDataType {
[fieldName: string]: null | string | number | boolean | string[];
}
export type PdfSrcType = string | ArrayBuffer | Blob | Uint8Array | URL | {
range: any;
} | undefined;
export type Base64SrcType = (string | null | undefined) & {};
export type PageType = (number | undefined) & {};
export type NamedDestType = (string | undefined) & {};
export type PasswordType = (string | undefined) & {};
export declare function isIOS(): boolean;
export declare class NgxExtendedPdfViewerComponent implements OnInit, OnDestroy, NgxHasHeight {
private readonly platformId;
private readonly notificationService;
private readonly elementRef;
private readonly platformLocation;
cdr: ChangeDetectorRef;
service: NgxExtendedPdfViewerService;
private readonly renderer;
private readonly pdfScriptLoaderService;
private readonly keyboardManager;
private readonly cspPolicyService;
private readonly iosCanvasService;
private readonly ngZone;
private readonly formSupport;
/** #3131 AbortController to unregister all eventBus listeners on destroy. */
private eventBusAbortController;
/**
* The dummy components are inserted automatically when the user customizes the toolbar
* without adding every original toolbar item. Without the dummy components, the
* initialization code of pdf.js crashes because it assume that every standard widget is there.
*/
dummyComponents: import("@angular/core").Signal<PdfDummyComponentsComponent | undefined>;
root: import("@angular/core").Signal<ElementRef<any> | undefined>;
annotationEditorEvent: import("@angular/core").OutputEmitterRef<AnnotationEditorEvent>;
customFindbarInputArea: InputSignal<TemplateRef<any> | undefined>;
customToolbar: InputSignal<TemplateRef<any> | undefined>;
customFindbar: InputSignal<TemplateRef<any> | undefined>;
customFindbarButtons: InputSignal<TemplateRef<any> | undefined>;
customPdfViewer: InputSignal<TemplateRef<any> | undefined>;
customSecondaryToolbar: InputSignal<TemplateRef<any> | undefined>;
customSidebar: InputSignal<TemplateRef<any> | undefined>;
customThumbnail: InputSignal<TemplateRef<any> | undefined>;
customFreeFloatingBar: InputSignal<TemplateRef<any> | undefined>;
showFreeFloatingBar: InputSignal<boolean>;
enableDragAndDrop: InputSignal<boolean>;
forceUsingLegacyES5: InputSignal<boolean>;
localizationInitialized: boolean;
private resizeObserver;
private initialAngularFormData?;
formData: InputSignal<FormDataType | undefined>;
private readonly _formDataEffect;
disableForms: InputSignal<boolean>;
get formDataChange(): import("@angular/core").EventEmitter<FormDataType>;
baseHref: string;
/** This flag prevents trying to load a file twice if the user uploads it using the file upload dialog or via drag'n'drop */
private srcChangeTriggeredByUser;
pageViewMode: ModelSignal<PageViewModeType>;
private _previousPageViewMode;
private readonly _pageViewModeEffect;
private handleViewMode;
private handleInfiniteScrollMode;
private handleSinglePageMode;
private handleBookMode;
private handleMultiplePageMode;
private redrawViewer;
markForCheck(): void;
progress: import("@angular/core").OutputEmitterRef<ProgressBarEvent>;
private readonly secondaryToolbarComponent;
private readonly dynamicCSSComponent;
private readonly sidebarComponent;
src: ModelSignal<PdfSrcType>;
private readonly _srcEffect;
private _src;
/** #3131 Tracks the last _src value that was actually opened, to avoid redundant re-opens when the effect re-fires. */
private _lastOpenedSrc;
scrollMode: ModelSignal<ScrollModeType>;
private readonly _scrollModeEffect;
authorization: InputSignal<boolean | Object | undefined>;
httpHeaders: InputSignal<Object | undefined>;
contextMenuAllowed: InputSignal<boolean>;
afterPrint: import("@angular/core").OutputEmitterRef<void>;
beforePrint: import("@angular/core").OutputEmitterRef<void>;
currentZoomFactor: import("@angular/core").OutputEmitterRef<number>;
/** This field stores the previous zoom level if the page is enlarged with a double-tap or double-click */
private previousZoom;
enablePrint: InputSignal<boolean>;
enablePrintAutoRotate: InputSignal<boolean>;
private readonly _enablePrintAutoRotateEffect;
/** Force reloading of the JavaScript code. Useful for testing and micro-frontends */
forceFullReloadOfJavaScriptCode: InputSignal<boolean>;
showEditorButtons: InputSignal<ResponsiveVisibility>;
disableEditorButtons: InputSignal<boolean>;
showTextEditor: InputSignal<ResponsiveVisibility>;
disableTextEditor: InputSignal<boolean>;
showStampEditor: InputSignal<ResponsiveVisibility>;
disableStampEditor: InputSignal<boolean>;
showCommentEditor: InputSignal<ResponsiveVisibility>;
disableCommentEditor: InputSignal<boolean>;
showDrawEditor: InputSignal<ResponsiveVisibility>;
disableDrawEditor: InputSignal<boolean>;
showHighlightEditor: InputSignal<ResponsiveVisibility>;
disableHighlightEditor: InputSignal<boolean>;
showSignatureEditor: InputSignal<ResponsiveVisibility>;
disableSignatureEditor: InputSignal<boolean>;
effectiveShowTextEditor: import("@angular/core").Signal<ResponsiveVisibility>;
effectiveShowStampEditor: import("@angular/core").Signal<ResponsiveVisibility>;
effectiveShowCommentEditor: import("@angular/core").Signal<ResponsiveVisibility>;
effectiveShowDrawEditor: import("@angular/core").Signal<ResponsiveVisibility>;
effectiveShowHighlightEditor: import("@angular/core").Signal<ResponsiveVisibility>;
effectiveShowSignatureEditor: import("@angular/core").Signal<ResponsiveVisibility>;
/** How many log messages should be printed?
* Legal values: VerbosityLevel.INFOS (= 5), VerbosityLevel.WARNINGS (= 1), VerbosityLevel.ERRORS (= 0) */
logLevel: InputSignal<VerbosityLevel>;
/** Use the minified (minifiedJSLibraries="true", which is the default) or the user-readable pdf.js library (minifiedJSLibraries="false") */
minifiedJSLibraries: ModelSignal<boolean>;
private readonly _minifiedJSLibrariesEffect;
primaryMenuVisible: boolean;
/** option to increase (or reduce) print resolution. Default is 150 (dpi). Sensible values
* are 300, 600, and 1200. Note the increase memory consumption, which may even result in a browser crash. */
printResolution: InputSignal<number | null>;
rotation: ModelSignal<0 | 90 | 180 | 270>;
annotationLayerRendered: import("@angular/core").OutputEmitterRef<AnnotationLayerRenderedEvent>;
linkAnnotationsAdded: import("@angular/core").OutputEmitterRef<LinkAnnotationsAddedEvent>;
annotationEditorLayerRendered: import("@angular/core").OutputEmitterRef<AnnotationEditorLayerRenderedEvent>;
xfaLayerRendered: import("@angular/core").OutputEmitterRef<XfaLayerRenderedEvent>;
outlineLoaded: import("@angular/core").OutputEmitterRef<OutlineLoadedEvent>;
attachmentsloaded: import("@angular/core").OutputEmitterRef<AttachmentLoadedEvent>;
layersloaded: import("@angular/core").OutputEmitterRef<LayersLoadedEvent>;
hasSignature: boolean;
base64Src: InputSignal<string | null | undefined>;
private readonly base64SrcEffect;
/**
* The combination of height, minHeight, and autoHeight ensures the PDF height of the PDF viewer is calculated correctly when the height is a percentage.
* By default, many CSS frameworks make a div with 100% have a height or zero pixels. checkHeight() fixes this.
*/
autoHeight: boolean;
protected _minHeight?: string;
protected _height: string | undefined;
get minHeight(): string | undefined;
set minHeight(value: string | undefined);
get height(): string | undefined;
set height(value: string | undefined);
minHeightInput: InputSignal<string | undefined>;
heightInput: InputSignal<string | undefined>;
private readonly _heightEffect;
backgroundColor: InputSignal<string | undefined>;
pdfBackgroundColor: InputSignal<string | undefined>;
private readonly _pdfBackgroundColorEffect;
private readonly _readingDirectionEffect;
/** Allows the user to define the name of the file after clicking "download" */
filenameForDownload: InputSignal<string | undefined>;
/** Allows the user to disable the keyboard bindings completely */
ignoreKeyboard: InputSignal<boolean>;
/** Allows the user to disable a list of key bindings. */
ignoreKeys: InputSignal<string[]>;
/** Allows the user to enable a list of key bindings explicitly. If this property is set, every other key binding is ignored. */
acceptKeys: InputSignal<string[]>;
hasTextLayer: boolean;
/** Allows the user to put the viewer's svg images into an arbitrary folder */
imageResourcesPath: InputSignal<string>;
/** Allows the user to put their locale folder into an arbitrary folder */
localeFolderPath: InputSignal<string>;
/** Override the default locale. This must be the complete locale name, such as "es-ES". The string is allowed to be all lowercase.
*/
language: InputSignal<string | undefined>;
/** By default, listening to the URL is deactivated because often the anchor tag is used for the Angular router */
listenToURL: InputSignal<boolean>;
/** Navigate to a certain "named destination" */
nameddest: InputSignal<string | undefined>;
/** allows you to pass a password to read password-protected files */
password: InputSignal<string | undefined>;
replaceBrowserPrint: InputSignal<boolean>;
private readonly originalPrint;
/** Store the original color-scheme value to restore it on destroy */
private originalColorScheme;
useInlineScripts: InputSignal<boolean>;
viewerPositionTop: string;
/** pdf.js can show signatures, but fails to verify them. So they are switched off by default.
* Set "[showUnverifiedSignatures]"="true" to display e-signatures nonetheless.
*/
showUnverifiedSignatures: InputSignal<boolean>;
startTabindex: InputSignal<number | undefined>;
showSidebarButton: InputSignal<ResponsiveVisibility>;
disableSidebarButton: InputSignal<boolean>;
private readonly _showSidebarButtonEffect;
_showSidebarButton: ResponsiveVisibility;
sidebarVisible: ModelSignal<boolean | undefined>;
private readonly _sidebarVisibleEffect;
activeSidebarView: ModelSignal<PdfSidebarView>;
findbarVisible: ModelSignal<boolean>;
propertiesDialogVisible: ModelSignal<boolean>;
showFindButton: InputSignal<ResponsiveVisibility | undefined>;
disableFindButton: InputSignal<boolean>;
showFindHighlightAll: InputSignal<boolean>;
showFindMatchCase: InputSignal<boolean>;
showFindMultiple: InputSignal<boolean>;
showFindRegexp: InputSignal<boolean>;
showFindEntireWord: InputSignal<boolean>;
showFindMatchDiacritics: InputSignal<boolean>;
showFindResultsCount: InputSignal<boolean>;
showFindMessages: InputSignal<boolean>;
showMovePageButton: InputSignal<ResponsiveVisibility>;
/** Enable page reordering via drag-and-drop in the thumbnail sidebar.
* This is read at initialization time only. Changing it after the viewer has loaded
* requires destroying and recreating the component. */
enablePageReorderingInput: InputSignal<boolean | undefined>;
/** Enable split & merge: copy, cut, delete, and export selected pages via the sidebar manage menu.
* This is read at initialization time only. Changing it after the viewer has loaded
* requires destroying and recreating the component. */
enableSplitMergeInput: InputSignal<boolean | undefined>;
disableMovePageButton: InputSignal<boolean>;
showPagingButtons: InputSignal<ResponsiveVisibility>;
disablePagingButtons: InputSignal<boolean>;
showFirstAndLastPageButtons: InputSignal<ResponsiveVisibility>;
disableFirstAndLastPageButtons: InputSignal<boolean>;
showPreviousAndNextPageButtons: InputSignal<ResponsiveVisibility>;
disablePreviousAndNextPageButtons: InputSignal<boolean>;
showPageNumber: InputSignal<ResponsiveVisibility>;
disablePageNumber: InputSignal<boolean>;
showPageLabel: InputSignal<ResponsiveVisibility>;
showZoomButtons: InputSignal<ResponsiveVisibility>;
disableZoomButtons: InputSignal<boolean>;
showZoomDropdown: InputSignal<ResponsiveVisibility>;
disableZoomDropdown: InputSignal<boolean>;
showPresentationModeButton: InputSignal<ResponsiveVisibility>;
disablePresentationModeButton: InputSignal<boolean>;
showOpenFileButton: InputSignal<ResponsiveVisibility>;
disableOpenFileButton: InputSignal<boolean>;
showPrintButton: InputSignal<ResponsiveVisibility>;
disablePrintButton: InputSignal<boolean>;
showDownloadButton: InputSignal<ResponsiveVisibility>;
disableDownloadButton: InputSignal<boolean>;
theme: InputSignal<string>;
showToolbar: InputSignal<boolean>;
showSecondaryToolbarButton: InputSignal<ResponsiveVisibility>;
disableSecondaryToolbarButton: InputSignal<boolean>;
showSinglePageModeButton: ModelSignal<ResponsiveVisibility>;
showVerticalScrollButton: ModelSignal<ResponsiveVisibility>;
showHorizontalScrollButton: ModelSignal<ResponsiveVisibility>;
showWrappedScrollButton: ModelSignal<ResponsiveVisibility>;
showInfiniteScrollButton: ModelSignal<ResponsiveVisibility>;
showBookModeButton: ModelSignal<ResponsiveVisibility>;
disableSinglePageModeButton: InputSignal<boolean>;
disableVerticalScrollButton: InputSignal<boolean>;
disableHorizontalScrollButton: InputSignal<boolean>;
disableWrappedScrollButton: InputSignal<boolean>;
disableInfiniteScrollButton: InputSignal<boolean>;
disableBookModeButton: InputSignal<boolean>;
showScrollingButtons: InputSignal<ResponsiveVisibility | undefined>;
private readonly _showScrollingButtonsEffect;
showRotateCwButton: ModelSignal<ResponsiveVisibility>;
showRotateCcwButton: ModelSignal<ResponsiveVisibility>;
disableRotateCwButton: InputSignal<boolean>;
disableRotateCcwButton: InputSignal<boolean>;
showRotateButton: InputSignal<ResponsiveVisibility | undefined>;
private readonly _showRotateButtonEffect;
handTool: ModelSignal<boolean>;
private readonly _handToolEffect;
showHandToolButton: InputSignal<ResponsiveVisibility>;
disableHandToolButton: InputSignal<boolean>;
/**
* In book mode, dragging normally flips pages. Set this to false to disable
* drag-to-flip, allowing text selection and panning instead. Click-based
* page flipping is not affected. When true (the default), drag-to-flip is
* automatically disabled when zoomed in beyond 100% so the user can pan.
*/
enableFlipByDrag: InputSignal<boolean>;
private readonly _enableFlipByDragEffect;
showPageFlipButton: InputSignal<ResponsiveVisibility>;
disablePageFlipButton: InputSignal<boolean>;
/**
* In book mode, show or hide the dog-ear fold animation on page corners
* when hovering near them. Only relevant when drag-to-flip is enabled.
*/
showPageCorners: InputSignal<boolean>;
private readonly _showPageCornersEffect;
showSpreadButton: InputSignal<ResponsiveVisibility>;
disableSpreadButton: InputSignal<boolean>;
showPropertiesButton: InputSignal<ResponsiveVisibility>;
disablePropertiesButton: InputSignal<boolean>;
showBorders: InputSignal<boolean>;
spread: ModelSignal<SpreadType>;
readingDirection: InputSignal<"rtl" | "auto" | "ltr">;
thumbnailDrawn: import("@angular/core").OutputEmitterRef<PdfThumbnailDrawnEvent>;
page: ModelSignal<number | undefined>;
private _pageSetFromScroll;
private readonly _pageEffect;
private _page;
pageLabel: ModelSignal<string | undefined>;
pagesLoaded: import("@angular/core").OutputEmitterRef<PagesLoadedEvent>;
pageRender: import("@angular/core").OutputEmitterRef<PageRenderEvent>;
pageRendered: import("@angular/core").OutputEmitterRef<PageRenderedEvent>;
pdfDownloaded: import("@angular/core").OutputEmitterRef<PdfDownloadedEvent>;
pdfLoaded: import("@angular/core").OutputEmitterRef<PdfLoadedEvent>;
pdfLoadingStarts: import("@angular/core").OutputEmitterRef<PdfLoadingStartsEvent>;
pdfLoadingFailed: import("@angular/core").OutputEmitterRef<Error>;
textLayer: InputSignal<boolean | undefined>;
textLayerRendered: import("@angular/core").OutputEmitterRef<TextLayerRenderedEvent>;
annotationEditorModeChanged: import("@angular/core").OutputEmitterRef<AnnotationEditorEditorModeChangedEvent>;
updateFindMatchesCount: import("@angular/core").OutputEmitterRef<FindResultMatchesCount>;
updateFindState: import("@angular/core").OutputEmitterRef<FindState>;
/** Legal values: undefined, 'auto', 'page-actual', 'page-fit', 'page-width', or '50' (or any other percentage) */
zoom: ModelSignal<ZoomType>;
/**
* Tracks the last zoom value set from a pdf.js scalechanging event.
* Used to break the feedback loop: pdf.js fires scalechanging → Angular updates zoom signal →
* effect calls setZoom() → sets currentScaleValue back on pdf.js. During pinch zoom,
* the async effect can set an outdated scale value back, causing flicker/jumping.
*/
private _lastZoomSetByPdfJs;
/**
* True while pdf.js is actively handling a zoom gesture (pinch or Ctrl+wheel).
* During an active gesture, pdf.js uses drawingDelay=400ms to defer page re-rendering
* (the page stays blurry and only sharpens after the gesture ends). If Angular's
* setZoom() writes currentScaleValue during this window, it bypasses drawingDelay
* and triggers an immediate full re-render on every frame, causing stutter on iPad.
*/
private _isPdfJsZooming;
private _pdfJsZoomingTimeout;
zoomLevels: InputSignal<(string | number)[]>;
maxZoom: InputSignal<number>;
minZoom: InputSignal<number>;
/** This attribute allows you to increase the size of the UI elements so you can use them on small mobile devices.
* This attribute is a string with a percent character at the end (e.g. "150%").
*/
_mobileFriendlyZoom: string;
mobileFriendlyZoomScale: number;
toolbarMarginTop: string;
toolbarWidth: string;
private toolbar;
onToolbarLoaded(toolbarElement: HTMLElement): void;
secondaryToolbarTop: string | undefined;
sidebarPositionTop: string | undefined;
editorParamsToolbarTop: string | undefined;
findbarTop: string | undefined;
findbarLeft: string | undefined;
private initializationPromise;
private checkRootElementTimeout;
private destroyInitialization;
get pdfJsVersion(): string;
get majorMinorPdfJsVersion(): string;
get enableSignatureEditor(): boolean;
get enablePageReordering(): boolean;
get enableSplitMerge(): boolean;
/**
* This attributes allows you to increase the size of the UI elements so you can use them on small mobile devices.
* This attribute is a string with a percent character at the end (e.g. "150%").
*/
mobileFriendlyZoom: InputSignal<string>;
private readonly _mobileFriendlyZoomEffect;
private readonly _zoomEffect;
private readonly _maxZoomEffect;
private readonly _minZoomEffect;
private readonly _findbarVisibleEffect;
private readonly _propertiesDialogVisibleEffect;
private readonly _pageLabelEffect;
private readonly _rotationEffect;
private readonly _activeSidebarViewEffect;
private readonly _filenameForDownloadEffect;
private readonly _nameddestEffect;
private readonly _spreadEffect;
private readonly _secondaryMenuEmptyEffect;
private readonly _enableDragAndDropEffect;
private readonly _printResolutionEffect;
private _keyboardSettingsEffect;
private readonly _replaceBrowserPrintEffect;
private _disableFormsEffect;
private readonly _showBordersEffect;
private readonly _showUnverifiedSignaturesEffect;
private readonly _enablePrintEffect;
private _customComponentsEffect;
serverSideRendering: boolean;
/**
* Checks if the code is running in a browser environment.
*/
private isBrowser;
calcViewerPositionTop(): void;
constructor(platformId: Object, notificationService: PDFNotificationService, elementRef: ElementRef, platformLocation: PlatformLocation, cdr: ChangeDetectorRef, service: NgxExtendedPdfViewerService, renderer: Renderer2, pdfScriptLoaderService: PDFScriptLoaderService, keyboardManager: NgxKeyboardManagerService, cspPolicyService: PdfCspPolicyService, iosCanvasService: IOSCanvasOptimizationService, ngZone: NgZone);
/**
* Detects if the application is running in zoneless mode (Angular 21+)
* @returns true if zone.js is not present
*/
private isZoneless;
/**
* Wraps an async callback to ensure change detection in zoneless mode.
* In zone.js mode: Zero overhead - Zone handles change detection automatically
* In zoneless mode: Manually triggers change detection after callback
*
* @param callback The function to execute
* @returns Wrapped function that triggers CD in zoneless mode
*
* @example
* // Instead of:
* queueMicrotask(() => this.progress.emit(x));
*
* // Use:
* queueMicrotask(this.asyncWithCD(() => this.progress.emit(x)));
*/
private asyncWithCD;
private reportSourceChanges;
private handleStoredValuesAvailable;
ngOnInit(): void;
private initialize;
private waitForRootElement;
private waitUntilOldComponentIsGone;
private assignTabindexes;
private showElementsRecursively;
private collectElementPositions;
/**
* Collect focusable elements from a popup identified by aria-controls ID
* These elements should appear in tab order immediately after the trigger button
*/
private collectPopupElements;
private readonly afterPrintListener;
private readonly beforePrintListener;
private guessFilenameFromUrl;
private doInitPDFViewer;
private addTranslationsUnlessProvidedByTheUser;
private hideToolbarIfItIsEmpty;
/** Notifies every widget that implements onLibraryInit() that the PDF viewer objects are available */
private afterLibraryInit;
onSpreadChange(newSpread: 'off' | 'even' | 'odd'): void;
private readonly toggleVisibility;
private activateTextlayerIfNecessary;
private overrideDefaultSettings;
private openPDF;
private registerEventListeners;
openPDF2(): Promise<void>;
private selectCursorTool;
doReplaceBrowserPrint(useCustomPrintOfPdfJS: boolean): void;
ngOnDestroy(): void;
private isPrimaryMenuVisible;
private closeDocument;
private setZoom;
initResizeObserver(): void;
onResize(): void;
onContextMenu(): boolean;
private pageHasVisibleSignature;
scrollSignatureWarningIntoView(pdf: PDFDocumentProxy): Promise<void>;
zoomToPageWidth(event: MouseEvent): Promise<void>;
private enableOrDisableForms;
closeCommentsSidebar(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxExtendedPdfViewerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxExtendedPdfViewerComponent, "ngx-extended-pdf-viewer", never, { "customFindbarInputArea": { "alias": "customFindbarInputArea"; "required": false; "isSignal": true; }; "customToolbar": { "alias": "customToolbar"; "required": false; "isSignal": true; }; "customFindbar": { "alias": "customFindbar"; "required": false; "isSignal": true; }; "customFindbarButtons": { "alias": "customFindbarButtons"; "required": false; "isSignal": true; }; "customPdfViewer": { "alias": "customPdfViewer"; "required": false; "isSignal": true; }; "customSecondaryToolbar": { "alias": "customSecondaryToolbar"; "required": false; "isSignal": true; }; "customSidebar": { "alias": "customSidebar"; "required": false; "isSignal": true; }; "customThumbnail": { "alias": "customThumbnail"; "required": false; "isSignal": true; }; "customFreeFloatingBar": { "alias": "customFreeFloatingBar"; "required": false; "isSignal": true; }; "showFreeFloatingBar": { "alias": "showFreeFloatingBar"; "required": false; "isSignal": true; }; "enableDragAndDrop": { "alias": "enableDragAndDrop"; "required": false; "isSignal": true; }; "forceUsingLegacyES5": { "alias": "forceUsingLegacyES5"; "required": false; "isSignal": true; }; "formData": { "alias": "formData"; "required": false; "isSignal": true; }; "disableForms": { "alias": "disableForms"; "required": false; "isSignal": true; }; "pageViewMode": { "alias": "pageViewMode"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "scrollMode": { "alias": "scrollMode"; "required": false; "isSignal": true; }; "authorization": { "alias": "authorization"; "required": false; "isSignal": true; }; "httpHeaders": { "alias": "httpHeaders"; "required": false; "isSignal": true; }; "contextMenuAllowed": { "alias": "contextMenuAllowed"; "required": false; "isSignal": true; }; "enablePrint": { "alias": "enablePrint"; "required": false; "isSignal": true; }; "enablePrintAutoRotate": { "alias": "enablePrintAutoRotate"; "required": false; "isSignal": true; }; "forceFullReloadOfJavaScriptCode": { "alias": "forceFullReloadOfJavaScriptCode"; "required": false; "isSignal": true; }; "showEditorButtons": { "alias": "showEditorButtons"; "required": false; "isSignal": true; }; "disableEditorButtons": { "alias": "disableEditorButtons"; "required": false; "isSignal": true; }; "showTextEditor": { "alias": "showTextEditor"; "required": false; "isSignal": true; }; "disableTextEditor": { "alias": "disableTextEditor"; "required": false; "isSignal": true; }; "showStampEditor": { "alias": "showStampEditor"; "required": false; "isSignal": true; }; "disableStampEditor": { "alias": "disableStampEditor"; "required": false; "isSignal": true; }; "showCommentEditor": { "alias": "showCommentEditor"; "required": false; "isSignal": true; }; "disableCommentEditor": { "alias": "disableCommentEditor"; "required": false; "isSignal": true; }; "showDrawEditor": { "alias": "showDrawEditor"; "required": false; "isSignal": true; }; "disableDrawEditor": { "alias": "disableDrawEditor"; "required": false; "isSignal": true; }; "showHighlightEditor": { "alias": "showHighlightEditor"; "required": false; "isSignal": true; }; "disableHighlightEditor": { "alias": "disableHighlightEditor"; "required": false; "isSignal": true; }; "showSignatureEditor": { "alias": "showSignatureEditor"; "required": false; "isSignal": true; }; "disableSignatureEditor": { "alias": "disableSignatureEditor"; "required": false; "isSignal": true; }; "logLevel": { "alias": "logLevel"; "required": false; "isSignal": true; }; "minifiedJSLibraries": { "alias": "minifiedJSLibraries"; "required": false; "isSignal": true; }; "printResolution": { "alias": "printResolution"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "base64Src": { "alias": "base64Src"; "required": false; "isSignal": true; }; "minHeightInput": { "alias": "minHeight"; "required": false; "isSignal": true; }; "heightInput": { "alias": "height"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "pdfBackgroundColor": { "alias": "pdfBackgroundColor"; "required": false; "isSignal": true; }; "filenameForDownload": { "alias": "filenameForDownload"; "required": false; "isSignal": true; }; "ignoreKeyboard": { "alias": "ignoreKeyboard"; "required": false; "isSignal": true; }; "ignoreKeys": { "alias": "ignoreKeys"; "required": false; "isSignal": true; }; "acceptKeys": { "alias": "acceptKeys"; "required": false; "isSignal": true; }; "imageResourcesPath": { "alias": "imageResourcesPath"; "required": false; "isSignal": true; }; "localeFolderPath": { "alias": "localeFolderPath"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "listenToURL": { "alias": "listenToURL"; "required": false; "isSignal": true; }; "nameddest": { "alias": "nameddest"; "required": false; "isSignal": true; }; "password": { "alias": "password"; "required": false; "isSignal": true; }; "replaceBrowserPrint": { "alias": "replaceBrowserPrint"; "required": false; "isSignal": true; }; "useInlineScripts": { "alias": "useInlineScripts"; "required": false; "isSignal": true; }; "showUnverifiedSignatures": { "alias": "showUnverifiedSignatures"; "required": false; "isSignal": true; }; "startTabindex": { "alias": "startTabindex"; "required": false; "isSignal": true; }; "showSidebarButton": { "alias": "showSidebarButton"; "required": false; "isSignal": true; }; "disableSidebarButton": { "alias": "disableSidebarButton"; "required": false; "isSignal": true; }; "sidebarVisible": { "alias": "sidebarVisible"; "required": false; "isSignal": true; }; "activeSidebarView": { "alias": "activeSidebarView"; "required": false; "isSignal": true; }; "findbarVisible": { "alias": "findbarVisible"; "required": false; "isSignal": true; }; "propertiesDialogVisible": { "alias": "propertiesDialogVisible"; "required": false; "isSignal": true; }; "showFindButton": { "alias": "showFindButton"; "required": false; "isSignal": true; }; "disableFindButton": { "alias": "disableFindButton"; "required": false; "isSignal": true; }; "showFindHighlightAll": { "alias": "showFindHighlightAll"; "required": false; "isSignal": true; }; "showFindMatchCase": { "alias": "showFindMatchCase"; "required": false; "isSignal": true; }; "showFindMultiple": { "alias": "showFindMultiple"; "required": false; "isSignal": true; }; "showFindRegexp": { "alias": "showFindRegexp"; "required": false; "isSignal": true; }; "showFindEntireWord": { "alias": "showFindEntireWord"; "required": false; "isSignal": true; }; "showFindMatchDiacritics": { "alias": "showFindMatchDiacritics"; "required": false; "isSignal": true; }; "showFindResultsCount": { "alias": "showFindResultsCount"; "required": false; "isSignal": true; }; "showFindMessages": { "alias": "showFindMessages"; "required": false; "isSignal": true; }; "showMovePageButton": { "alias": "showMovePageButton"; "required": false; "isSignal": true; }; "enablePageReorderingInput": { "alias": "enablePageReordering"; "required": false; "isSignal": true; }; "enableSplitMergeInput": { "alias": "enableSplitMerge"; "required": false; "isSignal": true; }; "disableMovePageButton": { "alias": "disableMovePageButton"; "required": false; "isSignal": true; }; "showPagingButtons": { "alias": "showPagingButtons"; "required": false; "isSignal": true; }; "disablePagingButtons": { "alias": "disablePagingButtons"; "required": false; "isSignal": true; }; "showFirstAndLastPageButtons": { "alias": "showFirstAndLastPageButtons"; "required": false; "isSignal": true; }; "disableFirstAndLastPageButtons": { "alias": "disableFirstAndLastPageButtons"; "required": false; "isSignal": true; }; "showPreviousAndNextPageButtons": { "alias": "showPreviousAndNextPageButtons"; "required": false; "isSignal": true; }; "disablePreviousAndNextPageButtons": { "alias": "disablePreviousAndNextPageButtons"; "required": false; "isSignal": true; }; "showPageNumber": { "alias": "showPageNumber"; "required": false; "isSignal": true; }; "disablePageNumber": { "alias": "disablePageNumber"; "required": false; "isSignal": true; }; "showPageLabel": { "alias": "showPageLabel"; "required": false; "isSignal": true; }; "showZoomButtons": { "alias": "showZoomButtons"; "required": false; "isSignal": true; }; "disableZoomButtons": { "alias": "disableZoomButtons"; "required": false; "isSignal": true; }; "showZoomDropdown": { "alias": "showZoomDropdown"; "required": false; "isSignal": true; }; "disableZoomDropdown": { "alias": "disableZoomDropdown"; "required": false; "isSignal": true; }; "showPresentationModeButton": { "alias": "showPresentationModeButton"; "required": false; "isSignal": true; }; "disablePresentationModeButton": { "alias": "disablePresentationModeButton"; "required": false; "isSignal": true; }; "showOpenFileButton": { "alias": "showOpenFileButton"; "required": false; "isSignal": true; }; "disableOpenFileButton": { "alias": "disableOpenFileButton"; "required": false; "isSignal": true; }; "showPrintButton": { "alias": "showPrintButton"; "required": false; "isSignal": true; }; "disablePrintButton": { "alias": "disablePrintButton"; "required": false; "isSignal": true; }; "showDownloadButton": { "alias": "showDownloadButton"; "required": false; "isSignal": true; }; "disableDownloadButton": { "alias": "disableDownloadButton"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "showToolbar": { "alias": "showToolbar"; "required": false; "isSignal": true; }; "showSecondaryToolbarButton": { "alias": "showSecondaryToolbarButton"; "required": false; "isSignal": true; }; "disableSecondaryToolbarButton": { "alias": "disableSecondaryToolbarButton"; "required": false; "isSignal": true; }; "showSinglePageModeButton": { "alias": "showSinglePageModeButton"; "required": false; "isSignal": true; }; "showVerticalScrollButton": { "alias": "showVerticalScrollButton"; "required": false; "isSignal": true; }; "showHorizontalScrollButton": { "alias": "showHorizontalScrollButton"; "required": false; "isSignal": true; }; "showWrappedScrollButton": { "alias": "showWrappedScrollButton"; "required": false; "isSignal": true; }; "showInfiniteScrollButton": { "alias": "showInfiniteScrollButton"; "required": false; "isSignal": true; }; "showBookModeButton": { "alias": "showBookModeButton"; "required": false; "isSignal": true; }; "disableSinglePageModeButton": { "alias": "disableSinglePageModeButton"; "required": false; "isSignal": true; }; "disableVerticalScrollButton": { "alias": "disableVerticalScrollButton"; "required": false; "isSignal": true; }; "disableHorizontalScrollButton": { "alias": "disableHorizontalScrollButton"; "required": false; "isSignal": true; }; "disableWrappedScrollButton": { "alias": "disableWrappedScrollButton"; "required": false; "isSignal": true; }; "disableInfiniteScrollButton": { "alias": "disableInfiniteScrollButton"; "required": false; "isSignal": true; }; "disableBookModeButton": { "alias": "disableBookModeButton"; "required": false; "isSignal": true; }; "showScrollingButtons": { "alias": "showScrollingButtons"; "required": false; "isSignal": true; }; "showRotateCwButton": { "alias": "showRotateCwButton"; "required": false; "isSignal": true; }; "showRotateCcwButton": { "alias": "showRotateCcwButton"; "required": false; "isSignal": true; }; "disableRotateCwButton": { "alias": "disableRotateCwButton"; "required": false; "isSignal": true; }; "disableRotateCcwButton": { "alias": "disableRotateCcwButton"; "required": false; "isSignal": true; }; "showRotateButton": { "alias": "showRotateButton"; "required": false; "isSignal": true; }; "handTool": { "alias": "handTool"; "required": false; "isSignal": true; }; "showHandToolButton": { "alias": "showHandToolButton"; "required": false; "isSignal": true; }; "disableHandToolButton": { "alias": "disableHandToolButton"; "required": false; "isSignal": true; }; "enableFlipByDrag": { "alias": "enableFlipByDrag"; "required": false; "isSignal": true; }; "showPageFlipButton": { "alias": "showPageFlipButton"; "required": false; "isSignal": true; }; "disablePageFlipButton": { "alias": "disablePageFlipButton"; "required": false; "isSignal": true; }; "showPageCorners": { "alias": "showPageCorners"; "required": false; "isSignal": true; }; "showSpreadButton": { "alias": "showSpreadButton"; "required": false; "isSignal": true; }; "disableSpreadButton": { "alias": "disableSpreadButton"; "required": false; "isSignal": true; }; "showPropertiesButton": { "alias": "showPropertiesButton"; "required": false; "isSignal": true; }; "disablePropertiesButton": { "alias": "disablePropertiesButton"; "required": false; "isSignal": true; }; "showBorders": { "alias": "showBorders"; "required": false; "isSignal": true; }; "spread": { "alias": "spread"; "required": false; "isSignal": true; }; "readingDirection": { "alias": "readingDirection"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "pageLabel": { "alias": "pageLabel"; "required": false; "isSignal": true; }; "textLayer": { "alias": "textLayer"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "zoomLevels": { "alias": "zoomLevels"; "required": false; "isSignal": true; }; "maxZoom": { "alias": "maxZoom"; "required": false; "isSignal": true; }; "minZoom": { "alias": "minZoom"; "required": false; "isSignal": true; }; "mobileFriendlyZoom": { "alias": "mobileFriendlyZoom"; "required": false; "isSignal": true; }; }, { "annotationEditorEvent": "annotationEditorEvent"; "formDataChange": "formDataChange"; "pageViewMode": "pageViewModeChange"; "progress": "progress"; "src": "srcChange"; "scrollMode": "scrollModeChange"; "afterPrint": "afterPrint"; "beforePrint": "beforePrint"; "currentZoomFactor": "currentZoomFactor"; "minifiedJSLibraries": "minifiedJSLibrariesChange"; "rotation": "rotationChange"; "annotationLayerRendered": "annotationLayerRendered"; "linkAnnotationsAdded": "linkAnnotationsAdded"; "annotationEditorLayerRendered": "annotationEditorLayerRendered"; "xfaLayerRendered": "xfaLayerRendered"; "outlineLoaded": "outlineLoaded"; "attachmentsloaded": "attachmentsloaded"; "layersloaded": "layersloaded"; "sidebarVisible": "sidebarVisibleChange"; "activeSidebarView": "activeSidebarViewChange"; "findbarVisible": "findbarVisibleChange"; "propertiesDialogVisible": "propertiesDialogVisibleChange"; "showSinglePageModeButton": "showSinglePageModeButtonChange"; "showVerticalScrollButton": "showVerticalScrollButtonChange"; "showHorizontalScrollButton": "showHorizontalScrollButtonChange"; "showWrappedScrollButton": "showWrappedScrollButtonChange"; "showInfiniteScrollButton": "showInfiniteScrollButtonChange"; "showBookModeButton": "showBookModeButtonChange"; "showRotateCwButton": "showRotateCwButtonChange"; "showRotateCcwButton": "showRotateCcwButtonChange"; "handTool": "handToolChange"; "spread": "spreadChange"; "thumbnailDrawn": "thumbnailDrawn"; "page": "pageChange"; "pageLabel": "pageLabelChange"; "pagesLoaded": "pagesLoaded"; "pageRender": "pageRender"; "pageRendered": "pageRendered"; "pdfDownloaded": "pdfDownloaded"; "pdfLoaded": "pdfLoaded"; "pdfLoadingStarts": "pdfLoadingStarts"; "pdfLoadingFailed": "pdfLoadingFailed"; "textLayerRendered": "textLayerRendered"; "annotationEditorModeChanged": "annotationEditorModeChanged"; "updateFindMatchesCount": "updateFindMatchesCount"; "updateFindState": "updateFindState"; "zoom": "zoomChange"; }, never, ["*", "*"], false, never>;
}