@lunit/insight-viewer
Version:
Based on the cornerstone library, it provides several components for handling Dicom images
50 lines (49 loc) • 1.99 kB
TypeScript
/// <reference types="react" />
import { DRAG, PRIMARY_DRAG, SECONDARY_DRAG, PRIMARY_CLICK, SECONDARY_CLICK, MOUSEWHEEL, MOUSE_WHEEL } from './const';
import { CornerstoneViewport, CornerstoneImage } from '../../utils/cornerstoneHelper';
import { Element, Viewport, OnViewportChange } from '../../types';
export declare type DragAction = keyof typeof DRAG;
export declare type WheelAction = keyof typeof MOUSE_WHEEL;
/** @deprecated in flavor of DragAction */
export declare type DragEvent = DragAction;
export declare type Click = (offsetX: number, offsetY: number) => void;
export interface DragCoords {
startX: number;
startY: number;
deltaX: number;
deltaY: number;
}
export declare type Drag = ({ viewport, delta }: {
viewport: CornerstoneViewport;
delta: {
x: number;
y: number;
};
}) => void;
export declare type DragEventHandler = (viewport: CornerstoneViewport, dragEvent: DragCoords) => Partial<Viewport>;
export interface WheelCoords {
deltaX: number;
deltaY: number;
}
export declare type Wheel = (deltaX: number, deltaY: number) => void;
export declare type WheelEventHandler = (viewport: CornerstoneViewport, wheelEvent: WheelCoords) => Partial<Viewport>;
export interface DragInteraction {
[PRIMARY_DRAG]: DragAction | Drag | undefined;
[SECONDARY_DRAG]: DragAction | Drag | undefined;
}
export interface ClickInteraction {
[PRIMARY_CLICK]: Click | undefined;
[SECONDARY_CLICK]: Click | undefined;
}
export interface WheelInteraction {
[MOUSEWHEEL]: WheelAction | Wheel | undefined;
}
export declare type Interaction = DragInteraction & ClickInteraction & WheelInteraction;
export declare type SetInteraction = React.Dispatch<React.SetStateAction<Interaction>>;
export interface ViewportInteraction {
element: Element;
image?: CornerstoneImage;
interaction?: Interaction;
viewport?: Viewport;
onViewportChange?: OnViewportChange;
}