@vue-pdf-viewer/viewer
Version:
A vue-pdf-viewer component for Vue and Nuxt. Suitable for vue-pdf document.
40 lines (39 loc) • 1.29 kB
TypeScript
/**
* Utility functions for calculating menu position with boundary constraints.
* Used by both text selection menu and annotation selection menu.
*/
import type { RectBox } from './types';
export interface VisibleAreaInput {
containerRect: DOMRect | null;
textLayerRect: DOMRect | null;
viewportWidth: number;
viewportHeight: number;
}
export interface VisibleArea {
left: number;
top: number;
right: number;
bottom: number;
}
export interface MenuBoundsInput extends RectBox {
yTop: number;
visibleArea: VisibleArea;
}
export interface SelectionBounds extends RectBox {
flipped: boolean;
}
export declare const MENU_WIDTH = 220;
export declare const MENU_HEIGHT = 44;
export declare const MENU_OFFSET = 8;
export declare const MENU_PADDING = 8;
/**
* Calculate visible area of the page within the viewport container.
* Returns bounds in page-relative coordinates.
*/
export declare function calculateVisibleArea(input: VisibleAreaInput): VisibleArea;
/**
* Calculate menu position with boundary constraints.
* - Horizontal: shifts menu left/right to stay within visible area
* - Vertical: flips menu above selection if it would overflow bottom
*/
export declare function calculateMenuBounds(input: MenuBoundsInput): SelectionBounds;