UNPKG

@vue-pdf-viewer/viewer

Version:

A vue-pdf-viewer component for Vue and Nuxt. Suitable for vue-pdf document.

38 lines (37 loc) 1.51 kB
import { MaybeRef, Ref, ShallowRef, UnwrapRef } from 'vue'; import type { UseScaleCallback, ViewerPdfPage } from '@/utils/types'; import { ViewMode, ZoomLevel } from '@/utils/enumerators'; import type { PDFDocumentProxy } from 'pdfjs-dist'; interface UseScaleProps { pdfDocument: ShallowRef<PDFDocumentProxy | undefined>; pagesContainerRef: ShallowRef<HTMLDivElement | undefined>; viewMode: Ref<ViewMode>; focusedPage: MaybeRef<ViewerPdfPage | undefined>; currentScale: Ref<number>; onScaleRequest?: (newScale: number, options?: { immediate?: boolean; origin?: [number, number]; }) => Promise<void>; } /** * Composable for handling zoom operations. * Calculates scale for ZoomLevel presets and delegates actual scaling to useVirtualPages. * * @param props - Scale-related props including PDF document, container, and callbacks * @param scaleCallback - Optional callback for external scale change listeners */ declare const useScale: (props: UnwrapRef<UseScaleProps>, scaleCallback?: ((event: UseScaleCallback) => void) | undefined) => { currentScale: Ref<number, number>; zoom: (scale: number | ZoomLevel, options?: { immediate?: boolean; origin?: [number, number]; }) => void; zoomControl: { scale: number; zoom: (scale: number | ZoomLevel, options?: { immediate?: boolean | undefined; origin?: [number, number] | undefined; } | undefined) => void; }; }; export default useScale;