UNPKG

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.

78 lines (75 loc) 3.9 kB
import { EventEmitter, Signal, Injector } from '@angular/core'; import { ChangedRotation, PagesInfo, DocumentError, FindMatchesCount, ReadAloudState, AnnotationEditorState, AnnotationEditorMode, SidebarViewChange, DocumentMetadata, DocumentOutline, FormDataMap, PresentationMode } from 'ng2-pdfjs-viewer'; interface PdfViewerSignalSource { onPageChange: EventEmitter<number>; onScaleChange: EventEmitter<number>; onRotationChange: EventEmitter<ChangedRotation>; onPagesInit: EventEmitter<PagesInfo>; onDocumentError: EventEmitter<DocumentError>; onUpdateFindMatchesCount: EventEmitter<FindMatchesCount>; onReadAloudStateChange: EventEmitter<ReadAloudState>; onAnnotationEditorStateChange: EventEmitter<AnnotationEditorState>; annotationEditorChange: EventEmitter<AnnotationEditorMode>; onSidebarViewChanged: EventEmitter<SidebarViewChange>; onMetadataLoaded: EventEmitter<DocumentMetadata>; onOutlineLoaded: EventEmitter<DocumentOutline>; formDataChange: EventEmitter<FormDataMap>; onPresentationModeChanged: EventEmitter<PresentationMode>; zoomChange: EventEmitter<string>; cursorChange: EventEmitter<string>; scrollChange: EventEmitter<string>; spreadChange: EventEmitter<string>; pageModeChange: EventEmitter<string>; } interface PdfViewerSignals { /** Current 1-based page number; undefined until the first page change. */ page: Signal<number | undefined>; /** Current zoom scale factor (1 = 100%); undefined until the first scale change. */ scale: Signal<number | undefined>; /** Total page count, available once the document's pages initialize. */ totalPages: Signal<number | undefined>; /** True once the document's pages have initialized. */ loaded: Signal<boolean>; /** Last document-load error, or undefined if none. */ error: Signal<DocumentError | undefined>; /** Page rotation state ({ rotation, page }). */ rotation: Signal<ChangedRotation | undefined>; /** Live find/search match counts ({ current, total }). */ findMatches: Signal<FindMatchesCount | undefined>; /** Read-aloud progress ({ status, page, sentence? }). */ readAloud: Signal<ReadAloudState | undefined>; /** Annotation editor undo/empty/selection state. */ annotationEditor: Signal<AnnotationEditorState | undefined>; /** Active annotation editor tool (highlight / ink / freetext / ...). */ annotationEditorMode: Signal<AnnotationEditorMode | undefined>; /** Current sidebar panel ({ view }). */ sidebar: Signal<SidebarViewChange | undefined>; /** Document metadata (title / author / ...). */ metadata: Signal<DocumentMetadata | undefined>; /** Document outline / bookmarks ({ items?, hasOutline }). */ outline: Signal<DocumentOutline | undefined>; /** Current AcroForm field values. */ formData: Signal<FormDataMap | undefined>; /** Presentation (fullscreen) mode ({ active }). */ presentationMode: Signal<PresentationMode | undefined>; /** Zoom mode string (e.g. 'auto', 'page-fit', '125'). */ zoom: Signal<string | undefined>; /** Cursor tool ('select' | 'hand'). */ cursor: Signal<string | undefined>; /** Scroll mode ('vertical' | 'horizontal' | 'wrapped' | 'page'). */ scroll: Signal<string | undefined>; /** Spread mode ('none' | 'odd' | 'even'). */ spread: Signal<string | undefined>; /** Page (view) mode. */ pageMode: Signal<string | undefined>; } /** * Project the viewer's outputs into read-only signals. See the file header for * usage and the injection-context rules. The returned signals are live: each * updates when its source output next fires. */ declare function pdfViewerSignals(viewer: PdfViewerSignalSource, options?: { injector?: Injector; }): PdfViewerSignals; export { pdfViewerSignals }; export type { PdfViewerSignalSource, PdfViewerSignals };