@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
53 lines (52 loc) • 3.36 kB
TypeScript
import { RectangleF, Transform, PointF, Path } from "@aurigma/design-atoms-model/Math";
import { BaseTextItemHandler } from "../ItemHandlers/BaseTextItemHandler";
import { NewBaseTextItemHandler } from "../ItemHandlers/NewBaseTextItemHandler";
import { ImageContainer } from "../ItemHandlers/ImageContainer";
import * as TextWhizz from "@aurigma/text-whizz/TextWhizzJS";
import { RgbColor } from "@aurigma/design-atoms-model/Colors";
import { IViewportHandler } from "../Viewer/Interfaces/IViewportHandler";
import { IColorPreviewService } from "../Services/IColorPreviewService";
import { IRgbColorParser } from "../Serialization/Color";
import { Size } from "@aurigma/design-atoms-model/Product/Items";
export interface ITextSelectionStyleConfig {
color: string;
textColor: string;
}
export interface ICanvasFactory {
createCanvas(size: Size): HTMLCanvasElement;
}
export declare abstract class TextRenderer {
protected _staticCanvas: HTMLCanvasElement;
protected _activeCanvas: HTMLCanvasElement;
protected _textWhizz: typeof TextWhizz;
protected _zoom: number;
protected _offset: PointF;
protected _viewportHandler: IViewportHandler;
protected _selectionStyle: ITextSelectionStyleConfig;
protected _rgbColorParser: IRgbColorParser;
private _canvasFactory;
static staticCanvasMargin: number;
protected _workspaceWidth: number;
protected _workspaceHeight: number;
protected _colorPreviewService: IColorPreviewService;
constructor(_staticCanvas: HTMLCanvasElement, _activeCanvas: HTMLCanvasElement, _textWhizz: typeof TextWhizz, _zoom: number, _offset: PointF, _viewportHandler: IViewportHandler, _selectionStyle: ITextSelectionStyleConfig, _rgbColorParser: IRgbColorParser, _canvasFactory: ICanvasFactory);
setWorkspaceSize(width: number, height: number): void;
setZoom(value: number): void;
set offset(value: PointF);
get offset(): PointF;
protected get _scale(): number;
protected _getScaledBounds(bounds: RectangleF): RectangleF;
protected _getScaledBoundsWithoutRound(bounds: RectangleF): RectangleF;
protected _colorToTextWhizz(color: RgbColor): TextWhizz.Color;
abstract drawText(handler: TextWhizz.TextHandler, transform: Transform, center: PointF, previewScale: number, opacity: number, clippingPath: Path): void;
abstract transformText(handler: TextWhizz.TextHandler, transform: Transform, center: PointF, previewScale: number, opacity: number, clippingPath: Path): void;
abstract clearText(): void;
abstract drawSelection(handler: TextWhizz.TextHandler, selection: TextWhizz.TextRange, transform: Transform, center: PointF, previewScale: number): void;
abstract getTextImage(handler: TextWhizz.TextHandler, bounds: RectangleF, previewScale: number): HTMLCanvasElement;
static renderTextImage(handler: BaseTextItemHandler | NewBaseTextItemHandler, imageContainer: ImageContainer, imageContainerRect: RectangleF, itemHandlerCtx: CanvasRenderingContext2D, opacityMultiplier: number, increaseImageRect: number): void;
protected _createCanvas(size: Size): HTMLCanvasElement;
protected _copyCanvas(source: HTMLCanvasElement, size: Size): HTMLCanvasElement;
private static _drawWaitClock;
private static _isUpdatingAfterResize;
private static _drawImage;
}