@mescius/dsimageviewer
Version:
Document Solutions Image Viewer
65 lines (64 loc) • 2.9 kB
TypeScript
import { IImageViewer } from "../Models/IImageViewer";
import { Bounds, PointLocation, Size } from "../Models/SelectionBoxTypes";
import { UndoCommandSupport } from "../Undo/Commands";
export declare type LayersPanelModel = {
layerIndex?: number;
};
export declare class MergeImageLayerCommand implements UndoCommandSupport {
newDataUrl: any;
originalImageDataUrl: any;
constructor(newDataUrl: any, originalImageDataUrl: any);
name: string;
execute(viewer: IImageViewer): Promise<void>;
undo(viewer: IImageViewer): Promise<void>;
}
export interface IImageLayer {
get name(): string;
set name(name: string);
get size(): Size;
clear(clearCache: boolean): any;
dispose(): any;
ensureBackground(): Promise<void>;
merge(): Promise<void>;
saveToDataURL(): Promise<string>;
drawObjects(): any;
executeTempPaintCommand(cmd: IPaintCommand): any;
getTempPaintCommands(): IPaintCommand[];
clearTempPaintCommands(): any;
get mainCanvas(): HTMLCanvasElement;
get backCanvas(): HTMLCanvasElement;
get mainCtx(): CanvasRenderingContext2D;
get backCtx(): CanvasRenderingContext2D;
get paintObjects(): IPaintObject[];
}
export declare type PointerTriggerType = "start" | "move" | "end";
export declare type PaintCommandName = "Pencil" | "Brush" | "Eraser" | "ErasePath2D" | "CloneStamp" | "TextPaintObject" | "UpdateObjectPosition" | "SetObjectProperty" | "DeleteObject" | "CopySelectedRegion" | "UpdateSelectedRegion" | "ResetSelectedRegion" | "CommitSelectedRegionImage" | "UndoSequenceMarker";
export interface IPaintDesignerContext {
getPaintObjectDesigners(): any[];
}
export declare type IPaintExecuteOptions = {
prevCommand?: IPaintCommand;
context: IPaintDesignerContext;
};
export interface IPaintCommand {
readonly name: PaintCommandName;
point?: PointLocation;
trigger: PointerTriggerType;
clone(): any;
execute(mainCtx: CanvasRenderingContext2D, backCtx: CanvasRenderingContext2D, options: IPaintExecuteOptions): any;
}
export declare type PaintObjectName = "ImagePaintObject" | "TextPaintObject";
export interface IPaintObject {
name: PaintObjectName;
get bounds(): Bounds;
set bounds(bounds: Bounds);
draw(destCtx: CanvasRenderingContext2D, mainCtx: CanvasRenderingContext2D, backCtx: CanvasRenderingContext2D, params?: PaintObjectParameters): any;
getContentSize(ctx: CanvasRenderingContext2D): Size;
getProperty(propertyName: PaintObjectPropertyName): any;
setProperty(propertyName: PaintObjectPropertyName, value: any): boolean;
}
export declare type PaintObjectParameters = {
isDesignTime?: boolean;
context: IImageLayer;
};
export declare type PaintObjectPropertyName = "bounds" | "fontSize" | "fontName" | "fontBold" | "fontItalic" | "opacity" | "text" | "textColor";