UNPKG

ng-pdf-renderer

Version:

A modern, zero-configuration PDF viewer for Angular applications with enhanced error handling, auto-fit, text selection, and responsive design

119 lines (118 loc) 3.96 kB
import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, ElementRef } from '@angular/core'; import { PdfOptions, PdfError } from '../models/pdf-options.model'; import * as i0 from "@angular/core"; /** * Main component for rendering PDFs * Uses modern Angular patterns including standalone components and signals */ export declare class PdfViewerComponent implements OnInit, OnDestroy, OnChanges { src: string | Uint8Array; options?: PdfOptions; pageChange: EventEmitter<number>; documentLoaded: EventEmitter<any>; loadingStateChange: EventEmitter<boolean>; errorOccurred: EventEmitter<PdfError>; documentLoadError: EventEmitter<any>; errorStateChange: EventEmitter<string | null>; canvasContainer: ElementRef<HTMLDivElement>; private pdfService; private destroy$; currentPage: import("@angular/core").WritableSignal<number>; totalPages: import("@angular/core").WritableSignal<number>; zoom: import("@angular/core").WritableSignal<number>; rotation: import("@angular/core").WritableSignal<number>; loading: import("@angular/core").WritableSignal<boolean>; error: import("@angular/core").WritableSignal<string | null>; private currentRenderTask; /** * Set loading state and emit event */ private setLoadingState; /** * Set error state and emit event */ private setErrorState; /** * Handle input changes - CRITICAL for src changes */ ngOnChanges(changes: SimpleChanges): void; /** * Initialize the component */ ngOnInit(): void; /** * Perform complete cleanup of all PDF rendering artifacts */ private performCompleteCleanup; /** * Clean up and reload PDF when src changes */ private cleanupAndReload; /** * Clean up subscriptions on component destruction */ ngOnDestroy(): void; /** * Load the PDF document */ private loadDocument; /** * Render a specific page of the PDF * @param pageNumber The page number to render */ private renderPage; /** * Render all pages of the PDF in continuous mode */ private renderAllPages; /** * Observe page visibility to update current page number */ private observePageVisibility; /** * Handle page change event from controls * @param pageNumber The new page number */ onPageChange(pageNumber: number): void; /** * Handle zoom change event from controls * @param zoom The new zoom level */ onZoomChange(zoom: number): void; /** * Handle rotation change event from controls * @param rotation The rotation change in degrees */ onRotationChange(rotation: number): void; /** * Handle download button click */ onDownload(): void; /** * Handle print button click */ onPrint(): void; /** * Handle search request * @param text The text to search for */ onSearch(text: string): Promise<void>; /** * Clear all search highlights */ private clearSearchHighlights; /** * Handle and emit PDF errors with proper categorization */ private handlePdfError; /** * Get user-friendly error messages based on error type */ private getErrorMessage; /** * Categorize errors based on their characteristics */ private categorizeError; static ɵfac: i0.ɵɵFactoryDeclaration<PdfViewerComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<PdfViewerComponent, "ng-pdf-viewer", never, { "src": { "alias": "src"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "pageChange": "pageChange"; "documentLoaded": "documentLoaded"; "loadingStateChange": "loadingStateChange"; "errorOccurred": "errorOccurred"; "documentLoadError": "documentLoadError"; "errorStateChange": "errorStateChange"; }, never, never, true, never>; }