point-focus
Version:
A React component for zooming and focusing on image points via click, drag, or cursor.
51 lines (50 loc) • 1.95 kB
TypeScript
import React from 'react';
import { IImageTypes, ZoomFallbackBoundaryProps, ZoomFallbackBoundaryState } from '../ImageMagnifier.types';
export type PageCoords = {
x: number;
y: number;
};
export type OffSetCoords = {
left: number;
top: number;
};
export type PageDimensions = {
width: number;
height: number;
};
export declare function isTouchEvent(e: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent | React.KeyboardEvent | KeyboardEvent): e is TouchEvent | React.TouchEvent;
export declare function getPageCoords(e: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent | React.KeyboardEvent | KeyboardEvent, fallbackElement?: HTMLElement | null): PageCoords;
export declare const getOffsets: (pageX: number, pageY: number, left: number, top: number) => PageCoords;
export declare const getBounds: (container: HTMLDivElement | null) => DOMRect | {
width: number;
height: number;
left: number;
top: number;
};
export declare const getRatios: (bounds: {
width: number;
height: number;
}, natural: {
width: number;
height: number;
}, zoomScale: number) => PageCoords;
export declare function clampToBounds(left: number, top: number, bounds: {
minLeft: number;
maxLeft: number;
minTop: number;
maxTop: number;
}): OffSetCoords;
export declare function calculateDragPosition(pageX: number, pageY: number, offsets: {
x: number;
y: number;
}): OffSetCoords;
export declare const getScaledDimensions: (zoomedImgRef: HTMLImageElement, zoomScale: number) => PageDimensions;
export declare const getDefaults: () => IImageTypes;
export declare class ZoomFallbackBoundary extends React.Component<ZoomFallbackBoundaryProps, ZoomFallbackBoundaryState> {
constructor(props: ZoomFallbackBoundaryProps);
static getDerivedStateFromError(): {
hasError: boolean;
};
componentDidCatch(error: any, info: any): void;
render(): React.ReactNode;
}