@mescius/dspdfviewer
Version:
Document Solutions PDF Viewer
78 lines (77 loc) • 2.37 kB
TypeScript
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;
}