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.
54 lines (53 loc) • 1.81 kB
TypeScript
import { NgZone } from '@angular/core';
import { IPDFViewerApplication } from '../options/pdf-viewer-application';
import * as i0 from "@angular/core";
/**
* Pure Angular service for iOS Safari pinch-to-zoom optimization
* Works by dynamically adjusting the maxCanvasPixels option during touch gestures
* This approach is compatible with the existing mypdf.js MaxCanvasSize class
*/
export declare class IOSCanvasOptimizationService {
private ngZone;
private PDFViewerApplication;
private isInitialized;
private isPinching;
private cooldownTimer;
private originalMaxCanvasPixels;
private reducedMaxCanvasPixels;
private readonly cooldownDuration;
private readonly reductionFactor;
private readonly iosMaxCanvasPixels;
constructor(ngZone: NgZone);
/**
* Initialize the service with PDFViewerApplication
* Called from NgxExtendedPdfViewerComponent.initialize()
*/
initialize(pdfViewerApplication: IPDFViewerApplication): void;
private getDefaultCanvasSize;
private setupTouchListeners;
private onPinchStart;
private onPinchEnd;
private startCooldown;
private clearCooldown;
private updateCanvasSize;
private triggerVisiblePageRerender;
private isPageVisible;
/**
* Get current canvas size setting
*/
getCurrentCanvasSize(): number;
/**
* Check if currently in pinch mode
*/
isPinchingActive(): boolean;
/**
* Manually override the canvas size (for advanced users)
*/
setCanvasSize(maxCanvasPixels: number): void;
/**
* Cleanup when service is destroyed
*/
destroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<IOSCanvasOptimizationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<IOSCanvasOptimizationService>;
}