import { OnInit, OnChanges } from '@angular/core'; import { DrawCommand, StateName } from './helpers/draw-state.interface'; import { FloatingTextEntryComponent } from './floating-text-entry/floating-text-entry.component'; export declare class AiaImageAnnotatorComponent implements OnInit, OnChanges { /** * The image to annotate. Can be data URI or a URL. */ image: string; /** * The font family. * Default: Georgia */ fontFamily: string; /** * The font size (including units). * Default: 15px */ fontSize: string; /** * Hex color string. * Default: #1218CE (deep blue) */ color: string; displayWidth: any; private imageCanvasRef; private drawingCanvasRef; private mergeCanvasRef; textEntry: FloatingTextEntryComponent; imageWidth: number; imageHeight: number; displayHeight: number; /** * Multiply this to project from the DOM space to the canvas space */ projectionFactor: number; private _state; private _drawCommands; private _redoCommands; imageCtx: CanvasRenderingContext2D; drawingCtx: CanvasRenderingContext2D; readonly canvasRect: ClientRect; private eventTranslator; private mouseCurrentlyDown; constructor(); ngOnInit(): void; ngOnChanges(changes: any): void; /** * BEGIN PUBLIC INTERFACE */ /** * Sets current tool * @param toolName Name of the tool */ setTool(toolName: StateName): void; /** * Undo last action */ undo(): void; /** * Redo last undone action if available */ redo(): void; /** * Clears canvas undo-ably */ clear(): void; /** * Returns annotated image as data URI */ getAnnotatedImage(type?: 'image/jpeg' | 'image/png'): string; /** * END PUBLIC INTERFACE */ /** * Loads an image from an src and initializes the canvases. CLEARS ALL EXISTING ANNOTATIONS * @param image The src for the image to be annotated */ private loadImageAndInitializeCanvas; /** * Sets projection factor, display width, and display height. * If display width hasn't been provided, it defaults to the image dimensions */ private initializeDisplayDimensions; /** * Initializes the canvases (both drawing and image) * Sets canvas dimensions, loads contexts, etc. * @param img The image to load on the image canvas */ private initializeCanvas; /** * Sets the color and the font */ private setColorAndFont; /** * Clears drawing canvas - no questions asked */ private clearCanvas; /** * Draws commands on canvas * @param commands The draw commands to be drawn * @param ctx The canvas 2d context */ private drawCommandsOnCanvas; addCommand(command: DrawCommand): void; touchStart(ev: TouchEvent): void; touchMove(ev: TouchEvent): void; touchEnd(ev: TouchEvent): void; mouseDown(ev: MouseEvent): void; mouseMove(ev: MouseEvent): void; mouseUp(ev: MouseEvent): void; }