UNPKG

@mescius/dspdfviewer

Version:
78 lines (77 loc) 2.37 kB
import GcPdfViewer from "../GcPdfViewer"; /** * Interface for the PageRegionSelector class. */ export interface IPageRegionSelector { /** * Activates the region selector, enabling region selection on pages. * @param onRegionSelected - Callback invoked with the selected region's coordinates and page index. */ activate(onRegionSelected: PageRegionSelectedCallback, args?: { enableAutoScroll?: boolean; }): any; /** * Deactivates the region selector and removes all event listeners. */ deactivate(): void; } /** * Callback invoked with the selected region's coordinates and page index. */ export type PageRegionSelectedCallback = (region: { x: number; y: number; width: number; height: number; pageIndex: number; pdfRect: number[]; }) => void; /** * Class to enable region selection on pages within a scrollable view. * Uses pointer events to support all device types. */ export declare class PageRegionSelector implements IPageRegionSelector { viewer: GcPdfViewer; private enableAutoScroll; private scrollView; private isActive; private startX; private startY; private selectionBox; private onRegionSelected; private _selectionStarted; private _pageElement; private _pageIndex; private _startScrollPos?; /** * @param scrollView - The container element with pages as children. */ constructor(viewer: GcPdfViewer); /** * Activates the region selector. * @param onRegionSelected - Callback invoked with the selected region's coordinates and page index. */ activate(onRegionSelected: PageRegionSelectedCallback, args?: { enableAutoScroll?: boolean; }): void; /** * Deactivates the region selector and removes all event listeners. */ deactivate(): void; /** * Handles window blur event to cancel selection when window loses focus */ private onWindowBlur; private onPointerDown; getScrollPos(): { scrollLeft: number; scrollTop: number; }; private onPointerMove; private onPointerUp; private rectToPdfRect; private onPointerCancel; private createSelectionBox; private updateSelectionBox; private removeSelectionBox; }