UNPKG

saltfish

Version:

An interactive video-guided tour system for web applications

90 lines 2.76 kB
/** * Represents a calculated position with coordinates and transforms */ export interface CalculatedPosition { x: number; y: number; transformX: string; transformY: string; } /** * Input parameters for position calculation */ export interface PositionParams { position: string; viewportWidth?: number; viewportHeight?: number; playerWidth?: number; isMinimized?: boolean; } /** * Utility class for calculating player positions based on position strings * Centralizes all position calculation logic to eliminate duplication */ export declare class PositionCalculator { /** * Calculates the initial position based on a position string * @param params Position calculation parameters * @returns Calculated position with coordinates and transforms */ static calculatePosition(params: PositionParams): CalculatedPosition; /** * Applies viewport constraints to keep the player within bounds * @param params Constraint parameters * @returns Constrained coordinates */ static applyConstraints(params: { x: number; y: number; position: string; viewportWidth: number; viewportHeight: number; playerWidth: number; }): { x: number; y: number; }; /** * Calculates position for drag operations with constraints * @param params Drag calculation parameters * @returns Constrained drag position */ static calculateDragPosition(params: { x: number; y: number; position?: string; viewportWidth?: number; viewportHeight?: number; playerWidth?: number; }): { x: number; y: number; }; /** * Determines transform values based on position string * @param position Position string (e.g., 'bottom-right', 'center') * @returns Transform values for CSS */ static getTransforms(position: string): { transformX: string; transformY: string; }; /** * Checks if a position change should force repositioning (e.g., bottom-left should force left alignment) * @param currentPosition Current position string * @param currentY Current Y coordinate * @param isDragging Whether the player is currently being dragged * @returns Whether to force repositioning */ static shouldForceReposition(currentPosition: string, currentY: number, isDragging: boolean): boolean; /** * Gets player dimensions for constraint calculations * @returns Player dimension information */ static getPlayerDimensions(): { width: number; minX: number; maxX: number; }; } //# sourceMappingURL=PositionCalculator.d.ts.map