ng2-pdfjs-viewer
Version:
The most comprehensive Angular PDF viewer, powered by Mozilla PDF.js 6 — view, annotate, sign, fill forms, search, and read aloud from one component. 8.3M+ downloads, mobile-first, production-ready.
633 lines (628 loc) • 30.4 kB
TypeScript
import * as i0 from '@angular/core';
import { OnInit, OnDestroy, OnChanges, AfterViewInit, ElementRef, EventEmitter, TemplateRef, ChangeDetectorRef, ApplicationRef, NgZone, SimpleChanges, ModuleWithProviders } from '@angular/core';
import { PdfAiPanelConfig, PdfAiPanelMessage } from 'ng2-pdfjs-viewer/ai';
export { PdfAiAssistant, PdfAiAssistantConfig, PdfAiMessage, PdfAiPanelConfig, PdfAiPanelMessage, PdfPageText } from 'ng2-pdfjs-viewer/ai';
import * as i2 from '@angular/common';
interface ActionExecutionResult {
actionId: string;
success: boolean;
error?: string;
timestamp: number;
data?: any;
}
type AnnotationEditorMode = "disable" | "none" | "freetext" | "highlight" | "stamp" | "ink" | "signature" | "comment";
interface AnnotationEditorState {
isEditing: boolean;
isEmpty: boolean;
hasSomethingToUndo: boolean;
hasSomethingToRedo: boolean;
hasSelectedEditor: boolean;
}
interface AnnotationEditorModeChange {
mode: AnnotationEditorMode;
}
interface SearchOptions {
caseSensitive?: boolean;
entireWord?: boolean;
highlightAll?: boolean;
matchDiacritics?: boolean;
}
type FormDataMap = Record<string, string | boolean | null>;
interface WatermarkConfig {
text: string;
color?: string;
opacity?: number;
fontSize?: string;
rotation?: number;
}
interface ContentProtectionConfig {
blockPrint?: boolean;
blockDownload?: boolean;
disableTextSelection?: boolean;
watermark?: WatermarkConfig | null;
}
interface PagesEditedEvent {
operation: string;
pagesCount: number;
}
interface ReadAloudState {
status: "reading" | "paused" | "stopped" | "finished" | "error";
page: number;
sentence?: string;
}
interface DocumentPageText {
page: number;
text: string;
}
type SidebarViewName = "none" | "thumbs" | "outline" | "attachments" | "layers" | "unknown";
interface SidebarViewChange {
view: SidebarViewName;
}
interface LayersChange {
reason: "loaded" | "changed";
layersCount?: number;
}
interface NamedActionEvent {
action: string;
}
interface PdfSignatureStorage {
loadAll(): Promise<Record<string, unknown>>;
save(uuid: string, data: unknown): Promise<void>;
delete(uuid: string): Promise<void>;
}
interface SearchResult {
total: number;
current: {
page: number;
matchIndex: number;
} | null;
matchesPerPage: number[];
pagesWithMatches: number[];
}
type ChangedPage = number;
type ChangedScale = number;
interface ChangedRotation {
rotation: number;
page: number;
}
interface ControlVisibilityConfig {
openFile?: boolean;
download?: boolean;
print?: boolean;
fullScreen?: boolean;
find?: boolean;
viewBookmark?: boolean;
annotations?: boolean;
}
interface GroupVisibilityConfig {
toolbarLeft?: boolean;
toolbarMiddle?: boolean;
toolbarRight?: boolean;
secondaryToolbarToggle?: boolean;
sidebar?: boolean;
sidebarLeft?: boolean;
sidebarRight?: boolean;
}
type ToolbarDensity = "default" | "compact" | "comfortable";
type ToolbarPosition = "top" | "bottom";
type SidebarPosition = "left" | "right";
type ExternalLinkTarget = "none" | "self" | "blank" | "parent" | "top";
interface LayoutConfig {
toolbarDensity?: ToolbarDensity;
sidebarWidth?: string;
toolbarPosition?: ToolbarPosition;
sidebarPosition?: SidebarPosition;
responsiveBreakpoint?: string | number;
}
interface AutoActionConfig {
downloadOnLoad?: boolean;
printOnLoad?: boolean;
showLastPageOnLoad?: boolean;
rotateCW?: boolean;
rotateCCW?: boolean;
}
interface ErrorConfig {
message?: string;
override?: boolean;
append?: boolean;
}
interface ViewerConfig {
showSpinner?: boolean;
useOnlyCssZoom?: boolean;
diagnosticLogs?: boolean;
locale?: string;
externalLinkTarget?: ExternalLinkTarget;
rememberLastView?: boolean;
}
interface ThemeConfig {
theme?: "light" | "dark" | "auto";
primaryColor?: string;
backgroundColor?: string;
pageBorderColor?: string;
pageSpacing?: {
margin?: string;
spreadMargin?: string;
border?: string;
};
toolbarColor?: string;
textColor?: string;
borderRadius?: string;
customCSS?: string;
cspNonce?: string;
iframeTitle?: string;
}
interface DocumentError {
message: string;
source?: any;
name?: string;
}
interface PagesInfo {
pagesCount: number;
}
interface PresentationMode {
active: boolean;
switchInProgress?: boolean;
}
interface FindOperation {
query: string;
phraseSearch: boolean;
caseSensitive: boolean;
entireWord?: boolean;
highlightAll?: boolean;
findPrevious?: boolean;
}
interface FindMatchesCount {
current: number;
total: number;
}
interface DocumentMetadata {
title?: string;
author?: string;
subject?: string;
keywords?: string;
creator?: string;
producer?: string;
creationDate?: string;
modificationDate?: string;
pdfFormatVersion?: string;
isLinearized?: boolean;
isAcroFormPresent?: boolean;
isXFAPresent?: boolean;
isCollectionPresent?: boolean;
}
interface DocumentOutline {
items?: any[];
hasOutline: boolean;
}
interface PageRenderInfo {
pageNumber: number;
source?: string;
timestamp?: number;
}
interface AnnotationLayerRenderEvent {
pageNumber: number;
error?: Error;
timestamp: number;
}
interface BookmarkClick {
title: string;
dest: string | null;
action?: string;
url?: string;
pageNumber?: number;
isCurrentItem: boolean;
}
declare class PdfJsViewerComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
iframe: ElementRef;
static lastID: number;
viewerId: string;
onBeforePrint: EventEmitter<void>;
onAfterPrint: EventEmitter<void>;
onDocumentLoad: EventEmitter<void>;
onPageChange: EventEmitter<ChangedPage>;
onScaleChange: EventEmitter<ChangedScale>;
onRotationChange: EventEmitter<ChangedRotation>;
onDocumentError: EventEmitter<DocumentError>;
onDocumentInit: EventEmitter<void>;
onPagesInit: EventEmitter<PagesInfo>;
onPresentationModeChanged: EventEmitter<PresentationMode>;
onOpenFile: EventEmitter<void>;
onFind: EventEmitter<FindOperation>;
onUpdateFindMatchesCount: EventEmitter<FindMatchesCount>;
onMetadataLoaded: EventEmitter<DocumentMetadata>;
onOutlineLoaded: EventEmitter<DocumentOutline>;
onPageRendered: EventEmitter<PageRenderInfo>;
onAnnotationLayerRendered: EventEmitter<AnnotationLayerRenderEvent>;
onBookmarkClick: EventEmitter<BookmarkClick>;
onIdle: EventEmitter<void>;
onPasswordPrompt: EventEmitter<void>;
onAnnotationEditorStateChange: EventEmitter<AnnotationEditorState>;
onPagesEdited: EventEmitter<PagesEditedEvent>;
onReadAloudStateChange: EventEmitter<ReadAloudState>;
onSidebarViewChanged: EventEmitter<SidebarViewChange>;
onLayersChanged: EventEmitter<LayersChange>;
onNamedAction: EventEmitter<NamedActionEvent>;
onDocumentProperties: EventEmitter<void>;
viewerFolder: string;
externalWindow: boolean;
target: string;
showSpinner: boolean;
downloadFileName: string;
locale: string;
useOnlyCssZoom: boolean;
externalLinkTarget: ExternalLinkTarget;
rememberLastView: boolean;
set annotationEditor(mode: AnnotationEditorMode);
get annotationEditor(): AnnotationEditorMode;
private _annotationEditor;
annotationEditorChange: EventEmitter<AnnotationEditorMode>;
highlightEditorColors?: string;
enableSignatureEditor: boolean;
signatureStorage?: PdfSignatureStorage;
pageColors?: {
background: string;
foreground: string;
} | null;
pdfJsOptions?: Record<string, string | number | boolean>;
enableCommentEditor: boolean;
enablePageEditing: boolean;
showToolbar: boolean;
chromeless: boolean;
customToolbarTpl?: TemplateRef<any>;
customSidebarTpl?: TemplateRef<any>;
aiAssistantConfig?: PdfAiPanelConfig | null;
aiPanelOpen: boolean;
aiBusy: boolean;
aiMessages: PdfAiPanelMessage[];
private aiClient?;
private aiClientConfig?;
private aiDocText?;
private aiGeneration;
private aiAbort?;
private invalidateAiState;
private _pageOverlayTpl?;
set pageOverlayTpl(value: TemplateRef<any> | undefined);
get pageOverlayTpl(): TemplateRef<any> | undefined;
httpHeaders?: Record<string, string>;
withCredentials: boolean;
onProgress: EventEmitter<{
loaded: number;
total: number;
}>;
private authLoadToken;
set formData(value: FormDataMap);
get formData(): FormDataMap;
private _formData;
formDataChange: EventEmitter<FormDataMap>;
set contentProtection(config: ContentProtectionConfig);
get contentProtection(): ContentProtectionConfig;
private _contentProtection;
set iframeSandbox(value: string);
get iframeSandbox(): string;
private _extraSandboxTokens;
get effectiveSandbox(): string;
set diagnosticLogs(value: boolean);
get diagnosticLogs(): boolean;
private _diagnosticLogs;
showOpenFile: boolean;
showAnnotations: boolean;
showDownload: boolean;
showViewBookmark: boolean;
showPrint: boolean;
showFullScreen: boolean;
showFind: boolean;
downloadOnLoad: boolean;
printOnLoad: boolean;
rotateCW: boolean;
rotateCCW: boolean;
showLastPageOnLoad: boolean;
namedDest: string;
errorOverride: boolean;
errorAppend: boolean;
errorMessage: string;
urlValidation: boolean;
customSecurityTpl: TemplateRef<any>;
securityWarning: {
message: string;
originalUrl: string;
currentUrl: string;
} | null;
theme: "light" | "dark" | "auto";
primaryColor?: string;
backgroundColor?: string;
pageBorderColor?: string;
pageSpacing?: {
margin?: string;
spreadMargin?: string;
border?: string;
};
toolbarColor?: string;
textColor?: string;
borderRadius?: string;
customCSS?: string;
cspNonce?: string;
iframeTitle?: string;
customSpinnerTpl?: TemplateRef<any>;
spinnerClass?: string;
customErrorTpl?: TemplateRef<any>;
errorClass?: string;
showToolbarLeft: boolean;
showToolbarMiddle: boolean;
showToolbarRight: boolean;
showSecondaryToolbarToggle: boolean;
showSidebar: boolean;
showSidebarLeft: boolean;
showSidebarRight: boolean;
toolbarDensity: ToolbarDensity;
sidebarWidth?: string;
toolbarPosition: ToolbarPosition;
sidebarPosition: SidebarPosition;
responsiveBreakpoint?: string | number;
isLoading: boolean;
hasError: boolean;
currentErrorMessage: string;
errorTemplateData: any;
getErrorTemplateData(): any;
private updateErrorTemplateData;
getIframeClasses(): string;
reloadViewer(): void;
goBack(): void;
closeViewer(): void;
set controlVisibility(config: ControlVisibilityConfig);
set autoActions(config: AutoActionConfig);
set errorHandling(config: ErrorConfig);
set viewerConfig(config: ViewerConfig);
set themeConfig(config: ThemeConfig);
set groupVisibility(config: GroupVisibilityConfig);
set layoutConfig(config: LayoutConfig);
private static warnedDeprecations;
private setDeprecatedProperty;
/** @deprecated Use `downloadOnLoad` instead. This property will be removed in a future version. */
set startDownload(value: boolean);
/** @deprecated Use `printOnLoad` instead. This property will be removed in a future version. */
set startPrint(value: boolean);
/** @deprecated Use `showOpenFile` instead. This property will be removed in a future version. */
set openFile(value: boolean);
/** @deprecated Use `showDownload` instead. This property will be removed in a future version. */
set download(value: boolean);
/** @deprecated Use `showPrint` instead. This property will be removed in a future version. */
set print(value: boolean);
/** @deprecated Use `showFullScreen` instead. This property will be removed in a future version. */
set fullScreen(value: boolean);
/** @deprecated Use `showFind` instead. This property will be removed in a future version. */
set find(value: boolean);
/** @deprecated Use `showViewBookmark` instead. This property will be removed in a future version. */
set viewBookmark(value: boolean);
/** @deprecated Use `showLastPageOnLoad` instead. This property will be removed in a future version. */
set lastPage(value: boolean);
externalWindowOptions: string;
viewerTab: any;
iframeBorder: string | number;
private _src;
private _page;
private isPostMessageReady;
private postMessageReadiness;
private initialConfigQueued;
private actionQueueManager;
private cdr;
private appRef?;
private ngZone?;
constructor(cdr: ChangeDetectorRef, appRef?: ApplicationRef, ngZone?: NgZone);
private messageIdCounter;
private actionIdCounter;
private pendingMessages;
private pendingChanges;
private releaseUrl?;
private webviewerLoadedHandler?;
private pdfEventHandlers?;
private _zoom;
private _rotation;
private _cursor;
private _scroll;
private _spread;
private _pageMode;
zoomChange: EventEmitter<string>;
cursorChange: EventEmitter<string>;
scrollChange: EventEmitter<string>;
spreadChange: EventEmitter<string>;
pageModeChange: EventEmitter<string>;
/**
* Two-way binding for zoom level
* Supports: auto, page-fit, page-width, page-actual, percentage values (e.g., "150%")
*/
get zoom(): string;
set zoom(value: string);
/**
* One-way binding for document rotation
* Supports: 0, 90, 180, 270 degrees
*/
set rotation(value: number);
get rotation(): number;
/**
* Two-way binding for cursor mode
* Supports: select, hand, zoom
*/
get cursor(): string;
set cursor(value: string);
/**
* Two-way binding for scroll mode
* Supports: vertical, horizontal, wrapped, page
*/
get scroll(): string;
set scroll(value: string);
/**
* Two-way binding for spread mode
* Supports: none, odd, even
*/
get spread(): string;
set spread(value: string);
/**
* Two-way binding for page mode (sidebar state)
* Supports: none, thumbs, bookmarks, attachments
*/
get pageMode(): string;
set pageMode(value: string);
set page(_page: number);
get page(): number;
set pdfSrc(_src: string | Blob | Uint8Array);
get pdfSrc(): string | Blob | Uint8Array;
get PDFViewerApplicationOptions(): any;
get PDFViewerApplication(): any;
private get isBrowser();
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
private generateMessageId;
private sendControlMessage;
private sendControlMessageWithRequeue;
private isIframeAccessible;
private processPostMessageReadyActions;
private handleControlResponse;
private messageHandler;
private handleHostRequest;
private setupMessageListener;
private rejectPendingMessages;
private handleStateChangeNotification;
private composeErrorMessage;
private handleEventNotification;
private applyChanges;
private dispatchRegisteredProperty;
private applyPendingChanges;
/**
* Waits for the PDF.js viewer to be ready, and binds the the event bus.
*/
private bindToPdfJsEventBus;
private teardownPdfJsEventBindings;
private queueAllConfigurations;
private queueAutoActionsForDocumentLoad;
refresh(): void;
sendViewerControlMessage(action: string, payload: any): Promise<any>;
triggerDownload(): Promise<ActionExecutionResult>;
triggerPrint(): Promise<ActionExecutionResult>;
setPage(page: number): Promise<ActionExecutionResult>;
setZoom(zoom: string): Promise<ActionExecutionResult>;
goToLastPage(): Promise<ActionExecutionResult>;
setCursor(cursor: string): Promise<ActionExecutionResult>;
setScroll(scroll: string): Promise<ActionExecutionResult>;
setSpread(spread: string): Promise<ActionExecutionResult>;
triggerRotation(direction: "cw" | "ccw"): Promise<ActionExecutionResult>;
goToPage(page: number): Promise<ActionExecutionResult>;
/**
* Serialized state of every annotation created or modified in the editor.
* Send this to a server to persist user annotations.
*/
getAnnotations(): Promise<any[]>;
/**
* Restore annotations previously exported with getAnnotations() back into
* the editor. Each annotation is rebuilt on its own page; annotations for
* pages that haven't rendered yet apply automatically as those pages
* render (counted in `pending`). Items with an invalid pageIndex for the
* current document are skipped (counted in `rejected`). Calling this twice
* with the same payload creates duplicates - restore is additive. Note:
* stamp images cannot round-trip (their bitmaps are not serializable).
*/
setAnnotations(annotations: any[]): Promise<{
restored: number;
pending: number;
rejected: number;
}>;
/**
* The current document - including annotation edits and filled form
* fields - as a Blob, ready for upload or download.
*/
getDocumentAsBlob(): Promise<Blob>;
/**
* Programmatic full-text search. Resolves with totals, per-page match
* counts and the pages containing matches; matches are highlighted in the
* viewer (highlightAll defaults to true).
*/
search(query: string, options?: SearchOptions): Promise<SearchResult>;
/** Move the search selection to the next match. */
searchNext(): Promise<SearchResult>;
/** Move the search selection to the previous match. */
searchPrevious(): Promise<SearchResult>;
/** Clear search highlights and forget the active query. */
clearSearch(): Promise<ActionExecutionResult>;
private overlayViews;
private mountPageOverlay;
private destroyPageOverlays;
private mountOverlaysOnRenderedPages;
/**
* Plain text of the document (or a 1-based page range), extracted from the
* PDF.js text layer. The raw material for BYO-AI chat/summarize flows.
*/
getDocumentText(from?: number, to?: number): Promise<DocumentPageText[]>;
/**
* Resolve once the current document has loaded, or after timeoutMs (in which
* case callers proceed with whatever the viewer can provide). Never rejects.
*/
private waitForDocumentLoad;
/**
* Read the document aloud from the current (or given) page using the
* browser's speech synthesis. Progress arrives on onReadAloudStateChange.
*/
startReadAloud(options?: {
fromPage?: number;
rate?: number;
}): Promise<ActionExecutionResult>;
pauseReadAloud(): Promise<ActionExecutionResult>;
resumeReadAloud(): Promise<ActionExecutionResult>;
stopReadAloud(): Promise<ActionExecutionResult>;
/**
* Ask the built-in AI panel a question programmatically (same path the
* panel's input uses). Requires [aiAssistantConfig]. Document text is
* extracted once per document and reused across questions.
*/
aiAsk(question: string): Promise<void>;
private parseAiCitations;
/**
* Current AcroForm field values (field name -> value), reflecting any
* user edits. Returns {} for documents without form fields.
*/
getFormData(): Promise<FormDataMap>;
/** Set a single form field by name. */
setFormField(name: string, value: string | boolean | null): Promise<ActionExecutionResult>;
getActionStatus(actionId: string): "pending" | "executing" | "completed" | "failed" | "not-found";
getQueueStatus(): {
queuedActions: number;
executedActions: number;
};
clearActionQueue(): void;
/**
* Enable or disable URL validation security feature
* When enabled, prevents users from modifying the file parameter in the viewer URL
* @param enabled - Whether to enable URL validation (default: true)
* @returns Promise<ActionExecutionResult>
*/
setUrlValidation(enabled?: boolean): Promise<ActionExecutionResult>;
/**
* Dismiss the security warning
*/
dismissSecurityWarning(): void;
private loadPdf;
private fetchPdfWithAuth;
private setupExternalWindow;
private renderLoadingSpinner;
private createFileUrl;
private buildViewerUrl;
private collectInitTimeOptions;
private navigateToViewer;
private externalWindowWarned;
private documentLoadFailed;
private documentLoaded;
private dispatchAction;
private getRequiredReadinessLevel;
private hasRequiredReadiness;
static ɵfac: i0.ɵɵFactoryDeclaration<PdfJsViewerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<PdfJsViewerComponent, "ng2-pdfjs-viewer", never, { "viewerId": { "alias": "viewerId"; "required": false; }; "viewerFolder": { "alias": "viewerFolder"; "required": false; }; "externalWindow": { "alias": "externalWindow"; "required": false; }; "target": { "alias": "target"; "required": false; }; "showSpinner": { "alias": "showSpinner"; "required": false; }; "downloadFileName": { "alias": "downloadFileName"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "useOnlyCssZoom": { "alias": "useOnlyCssZoom"; "required": false; }; "externalLinkTarget": { "alias": "externalLinkTarget"; "required": false; }; "rememberLastView": { "alias": "rememberLastView"; "required": false; }; "annotationEditor": { "alias": "annotationEditor"; "required": false; }; "highlightEditorColors": { "alias": "highlightEditorColors"; "required": false; }; "enableSignatureEditor": { "alias": "enableSignatureEditor"; "required": false; }; "signatureStorage": { "alias": "signatureStorage"; "required": false; }; "pageColors": { "alias": "pageColors"; "required": false; }; "pdfJsOptions": { "alias": "pdfJsOptions"; "required": false; }; "enableCommentEditor": { "alias": "enableCommentEditor"; "required": false; }; "enablePageEditing": { "alias": "enablePageEditing"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "chromeless": { "alias": "chromeless"; "required": false; }; "customToolbarTpl": { "alias": "customToolbarTpl"; "required": false; }; "customSidebarTpl": { "alias": "customSidebarTpl"; "required": false; }; "aiAssistantConfig": { "alias": "aiAssistantConfig"; "required": false; }; "pageOverlayTpl": { "alias": "pageOverlayTpl"; "required": false; }; "httpHeaders": { "alias": "httpHeaders"; "required": false; }; "withCredentials": { "alias": "withCredentials"; "required": false; }; "formData": { "alias": "formData"; "required": false; }; "contentProtection": { "alias": "contentProtection"; "required": false; }; "iframeSandbox": { "alias": "iframeSandbox"; "required": false; }; "diagnosticLogs": { "alias": "diagnosticLogs"; "required": false; }; "showOpenFile": { "alias": "showOpenFile"; "required": false; }; "showAnnotations": { "alias": "showAnnotations"; "required": false; }; "showDownload": { "alias": "showDownload"; "required": false; }; "showViewBookmark": { "alias": "showViewBookmark"; "required": false; }; "showPrint": { "alias": "showPrint"; "required": false; }; "showFullScreen": { "alias": "showFullScreen"; "required": false; }; "showFind": { "alias": "showFind"; "required": false; }; "downloadOnLoad": { "alias": "downloadOnLoad"; "required": false; }; "printOnLoad": { "alias": "printOnLoad"; "required": false; }; "rotateCW": { "alias": "rotateCW"; "required": false; }; "rotateCCW": { "alias": "rotateCCW"; "required": false; }; "showLastPageOnLoad": { "alias": "showLastPageOnLoad"; "required": false; }; "namedDest": { "alias": "namedDest"; "required": false; }; "errorOverride": { "alias": "errorOverride"; "required": false; }; "errorAppend": { "alias": "errorAppend"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "urlValidation": { "alias": "urlValidation"; "required": false; }; "customSecurityTpl": { "alias": "customSecurityTpl"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "primaryColor": { "alias": "primaryColor"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "pageBorderColor": { "alias": "pageBorderColor"; "required": false; }; "pageSpacing": { "alias": "pageSpacing"; "required": false; }; "toolbarColor": { "alias": "toolbarColor"; "required": false; }; "textColor": { "alias": "textColor"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "customCSS": { "alias": "customCSS"; "required": false; }; "cspNonce": { "alias": "cspNonce"; "required": false; }; "iframeTitle": { "alias": "iframeTitle"; "required": false; }; "customSpinnerTpl": { "alias": "customSpinnerTpl"; "required": false; }; "spinnerClass": { "alias": "spinnerClass"; "required": false; }; "customErrorTpl": { "alias": "customErrorTpl"; "required": false; }; "errorClass": { "alias": "errorClass"; "required": false; }; "showToolbarLeft": { "alias": "showToolbarLeft"; "required": false; }; "showToolbarMiddle": { "alias": "showToolbarMiddle"; "required": false; }; "showToolbarRight": { "alias": "showToolbarRight"; "required": false; }; "showSecondaryToolbarToggle": { "alias": "showSecondaryToolbarToggle"; "required": false; }; "showSidebar": { "alias": "showSidebar"; "required": false; }; "showSidebarLeft": { "alias": "showSidebarLeft"; "required": false; }; "showSidebarRight": { "alias": "showSidebarRight"; "required": false; }; "toolbarDensity": { "alias": "toolbarDensity"; "required": false; }; "sidebarWidth": { "alias": "sidebarWidth"; "required": false; }; "toolbarPosition": { "alias": "toolbarPosition"; "required": false; }; "sidebarPosition": { "alias": "sidebarPosition"; "required": false; }; "responsiveBreakpoint": { "alias": "responsiveBreakpoint"; "required": false; }; "controlVisibility": { "alias": "controlVisibility"; "required": false; }; "autoActions": { "alias": "autoActions"; "required": false; }; "errorHandling": { "alias": "errorHandling"; "required": false; }; "viewerConfig": { "alias": "viewerConfig"; "required": false; }; "themeConfig": { "alias": "themeConfig"; "required": false; }; "groupVisibility": { "alias": "groupVisibility"; "required": false; }; "layoutConfig": { "alias": "layoutConfig"; "required": false; }; "startDownload": { "alias": "startDownload"; "required": false; }; "startPrint": { "alias": "startPrint"; "required": false; }; "openFile": { "alias": "openFile"; "required": false; }; "download": { "alias": "download"; "required": false; }; "print": { "alias": "print"; "required": false; }; "fullScreen": { "alias": "fullScreen"; "required": false; }; "find": { "alias": "find"; "required": false; }; "viewBookmark": { "alias": "viewBookmark"; "required": false; }; "lastPage": { "alias": "lastPage"; "required": false; }; "externalWindowOptions": { "alias": "externalWindowOptions"; "required": false; }; "iframeBorder": { "alias": "iframeBorder"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "rotation": { "alias": "rotation"; "required": false; }; "cursor": { "alias": "cursor"; "required": false; }; "scroll": { "alias": "scroll"; "required": false; }; "spread": { "alias": "spread"; "required": false; }; "pageMode": { "alias": "pageMode"; "required": false; }; "page": { "alias": "page"; "required": false; }; "pdfSrc": { "alias": "pdfSrc"; "required": false; }; }, { "onBeforePrint": "onBeforePrint"; "onAfterPrint": "onAfterPrint"; "onDocumentLoad": "onDocumentLoad"; "onPageChange": "onPageChange"; "onScaleChange": "onScaleChange"; "onRotationChange": "onRotationChange"; "onDocumentError": "onDocumentError"; "onDocumentInit": "onDocumentInit"; "onPagesInit": "onPagesInit"; "onPresentationModeChanged": "onPresentationModeChanged"; "onOpenFile": "onOpenFile"; "onFind": "onFind"; "onUpdateFindMatchesCount": "onUpdateFindMatchesCount"; "onMetadataLoaded": "onMetadataLoaded"; "onOutlineLoaded": "onOutlineLoaded"; "onPageRendered": "onPageRendered"; "onAnnotationLayerRendered": "onAnnotationLayerRendered"; "onBookmarkClick": "onBookmarkClick"; "onIdle": "onIdle"; "onPasswordPrompt": "onPasswordPrompt"; "onAnnotationEditorStateChange": "onAnnotationEditorStateChange"; "onPagesEdited": "onPagesEdited"; "onReadAloudStateChange": "onReadAloudStateChange"; "onSidebarViewChanged": "onSidebarViewChanged"; "onLayersChanged": "onLayersChanged"; "onNamedAction": "onNamedAction"; "onDocumentProperties": "onDocumentProperties"; "annotationEditorChange": "annotationEditorChange"; "onProgress": "onProgress"; "formDataChange": "formDataChange"; "zoomChange": "zoomChange"; "cursorChange": "cursorChange"; "scrollChange": "scrollChange"; "spreadChange": "spreadChange"; "pageModeChange": "pageModeChange"; }, never, never, false, never>;
}
declare class PdfJsViewerModule {
/** @deprecated Import PdfJsViewerModule directly; forRoot() registers no providers. */
static forRoot(): ModuleWithProviders<PdfJsViewerModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<PdfJsViewerModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<PdfJsViewerModule, [typeof PdfJsViewerComponent], [typeof i2.CommonModule], [typeof PdfJsViewerComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<PdfJsViewerModule>;
}
export { PdfJsViewerComponent, PdfJsViewerModule };
export type { ActionExecutionResult, AnnotationEditorMode, AnnotationEditorModeChange, AnnotationEditorState, AnnotationLayerRenderEvent, AutoActionConfig, BookmarkClick, ChangedPage, ChangedRotation, ChangedScale, ContentProtectionConfig, ControlVisibilityConfig, DocumentError, DocumentMetadata, DocumentOutline, DocumentPageText, ErrorConfig, ExternalLinkTarget, FindMatchesCount, FindOperation, FormDataMap, GroupVisibilityConfig, LayersChange, LayoutConfig, NamedActionEvent, PageRenderInfo, PagesEditedEvent, PagesInfo, PdfSignatureStorage, PresentationMode, ReadAloudState, SearchOptions, SearchResult, SidebarPosition, SidebarViewChange, SidebarViewName, ThemeConfig, ToolbarDensity, ToolbarPosition, ViewerConfig, WatermarkConfig };