/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core'; import { LoaderSettings } from './models/loader-settings'; import { TypedArray } from '@progress/kendo-pdfviewer-common'; import { PDFViewerContext } from './models/pdfviewer-context'; import { LocalizationService } from '@progress/kendo-angular-l10n'; import { PDFViewerDownloadEvent, PDFViewerErrorEvent, PDFViewerLoadEvent, PDFViewerPageChangeEvent, PDFViewerZoomChangeEvent } from './models/events'; import { SaveOptions } from '@progress/kendo-file-saver'; import { PageChangeEvent } from '@progress/kendo-angular-pager'; import { ZoomLevel } from './models/zoom-level'; import { PDFViewerTool } from './models/toolbar-tool'; import { ToolbarComponent } from './toolbar/toolbar.component'; import 'pdfjs-dist/build/pdf.worker.min.mjs'; import * as i0 from "@angular/core"; /** * Represents the [Kendo UI PDFViewer component for Angular](slug:overview_pdfviewer). * * @example * ```html * * * ``` * * @remarks * Supported children components are: {@link PDFViewerCustomMessagesComponent} */ export declare class PDFViewerComponent implements OnInit, OnDestroy { private ngZone; private renderer; private localizationService; private cdr; private host; hostClass: boolean; direction: string; /** * Represents the tools collection rendered in the toolbar. * @default ['pager', 'spacer', 'zoomInOut', 'zoom', 'selection', 'spacer', 'search', 'open', 'download', 'print' ] */ tools: PDFViewerTool[]; /** * The configuration of the internal Loader component. * @default { size: 'large', type: 'pulsing', themeColor: 'primary' } */ loaderSettings: LoaderSettings; /** * The name of the file that will be saved when the end user clicks the Download tool. * @default 'Download' */ saveFileName: string; /** * Represents the options for saving the file when the end user clicks the Download tool. * @default {} */ saveOptions: SaveOptions; /** * Represents the url of the PDF file. */ url: string | undefined; /** * Represents the data of the PDF file in [Base64 format](https://developer.mozilla.org/en-US/docs/Glossary/Base64). */ data: string | undefined; /** * Represents the raw [binary data buffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) of the PDF file. */ arrayBuffer: ArrayBuffer | undefined; /** * Represents the data of the PDF file in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) format. */ typedArray: TypedArray | undefined; /** * Sets the initial zoom level of the PDF document * ([see example](slug:tools_pdfviewer#zooming-tools)). * * @default 1.25 */ set zoom(value: number | 'fitToPage' | 'fitToWidth'); get zoom(): number; /** * Represents the step the zoom level will be changed with when using the **ZoomIn** and **ZoomOut** tools. * @default 0.25 */ zoomRate: number; /** * Represents minimum allowed zoom value. * @default 0.5 */ minZoom: number; /** * Represents maximum allowed zoom value. * @default 4 */ maxZoom: number; /** * Sets whether the component loads all PDF document pages at once or loads new pages on demand when needed. * * @default false */ loadOnDemand: boolean; /** * Sets the number of pages to load on demand when the `loadOnDemand` property is `true`. * * @default 1 */ loadOnDemandPageSize: number; /** * Fires when the component loads a PDF document successfully. */ load: EventEmitter; /** * Fires when an error occurs while loading or downloading the PDF document. */ error: EventEmitter; /** * Fires when the user clicks the **Download** tool of the loaded PDF document. */ download: EventEmitter; /** * Fires when the user changes the page of the loaded PDF document. */ pageChange: EventEmitter; /** * Fires when the user changes the zoom level of the loaded PDF document. */ zoomLevelChange: EventEmitter; private pagesContainer; /** * Returns the current page number of the loaded PDF document. */ get currentPage(): number; set pdfContext(doc: PDFViewerContext); /** * Exposes the loaded `PDF.js` document, its pages, and their DOM element wrapper. */ get pdfContext(): PDFViewerContext; /** * @hidden */ get activePageId(): string; /** * @hidden */ get pagesContainerId(): string; loading: boolean; searchActive: boolean; matchCase: boolean; currentMatches: any[]; currentMatch: number; /** * @hidden */ set enabledSelection(value: boolean); /** * @hidden */ get enabledSelection(): boolean; /** * @hidden */ showLicenseWatermark: boolean; skip: number; zoomOptionsData: ({ id: number; text: string; type: string; displayValue: string; value: number; } | { id: number; text: string; displayValue: string; value: number; type?: undefined; })[]; zoomLevel: ZoomLevel; private _pdfContext; private _enabledSelection; private _zoom; private _fitType; private _zoomToFit; private subs; private emitLoad; constructor(ngZone: NgZone, renderer: Renderer2, localizationService: LocalizationService, cdr: ChangeDetectorRef, host: ElementRef); ngOnInit(): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; /** * Scrolls the PDFViewer document to the specified page number, treating 0 as the first page * ([see example](slug:tools_pdfviewer#programmatically-scrolling-the-pdfviewer)). */ scrollToPage(page: number): void; /** * @hidden */ onFileSelect(e: string | ArrayBuffer): void; /** * @hidden */ onFileSelectError(e: any): void; /** * @hidden */ onPageChange(e: PageChangeEvent): void; /** * @hidden */ onDownload(): void; /** * @hidden */ stopPropagation: (e: any) => void; /** * @hidden */ onZoomIn(): void; /** * @hidden */ onZoomOut(): void; /** * @hidden */ onZoomLevelChange(zoomLevel: ZoomLevel, emit?: boolean): void; /** * @hidden */ onSearch(): void; /** * @hidden */ onPrint(): void; /** * @hidden */ onSearchChange(e: { text: string; matchCase: boolean; }): void; /** * @hidden */ closeSearch(toolbar: ToolbarComponent): void; /** * @hidden */ onNextMatch(): void; /** * @hidden */ onPreviousMatch(): void; private pdfViewerWidget; private loadPdf; private assignPageIds; private setZoomLevel; private verifySettings; private isSet; private scrollHandler; private loadHandler; private zoomEndHandler; private errorHandler; private zoneAwareEmitter; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }