@aurigma/design-atoms
Version: 
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
112 lines (111 loc) • 5.64 kB
TypeScript
import * as TextWhizz from "@aurigma/text-whizz/TextWhizzJS";
import { PointF } from "@aurigma/design-atoms-model";
import { ILimitsViolationEventData, ITextEditor } from "@aurigma/design-atoms-text";
import { BaseRectangleItemHandler } from "./ItemHandlers";
import { IHandlersConfiguration, IViewportHandler, ISnapLinesHandler } from "./Viewer/Interfaces";
import { RubberbandHandler } from "./Input/InputHandler/Default/RubberbandHandler";
import { CanvasRendererStyle } from "./Canvas/CanvasRendererStyle";
import { SpotlightHandler } from "./Canvas/SpotlightHandler";
import { IHoverHandler } from "./Canvas/Interfaces";
import { ICanvasRenderer, IMargins, IProductHandler } from "./ICanvasRenderer";
import { IWorkspace } from "./IWorkspace";
import { Rubberband } from "./Rubberband";
import { IInteractiveZonesHandler } from "./Viewer/Interfaces/IInteractiveZonesHandler";
import { Translations } from "./Viewer/Translations";
import { TextRenderer } from "./InPlace/TextRenderer";
import { IViewportContext } from "./IViewportContext";
import { IWorkspaceContext } from "./IWorkspaceContext";
import { Layer } from "./Layer";
import { ISelectionHandler } from "./Services/Selection/ISelectionHandler";
export interface ITextEditorContext {
    textEditor: ITextEditor;
}
export interface ITranslationsContext {
    translations: Translations;
}
export interface IRulersContext {
    actualRulerWidth: number;
}
export interface ITextLimitsContext {
    lastLimitsEvent: ILimitsViolationEventData;
    errorInput: boolean;
}
export interface IDragNDropHandler {
    draw(): void;
}
export interface ICanvasElementHandler {
    viewportMemoryCanvas: HTMLCanvasElement;
    viewportTextureCanvas: HTMLCanvasElement;
}
export declare class CanvasRenderer implements ICanvasRenderer {
    private _selection;
    private _dndHandler;
    private _rubberbandHandler;
    private _viewportHandler;
    private _spotlightHandler;
    private _hoverHandler;
    private _snapLinesHandler;
    private _canvasElementHandler;
    private _interactiveZonesHandler;
    private readonly _loadingImage;
    private _rotationIconImage;
    private _handlerConfiguration;
    private _textRenderer;
    private _textWhizz;
    private _snapLineMarkSize;
    style: CanvasRendererStyle;
    previewMode: boolean;
    constructor(_selection: ISelectionHandler, _dndHandler: IDragNDropHandler, handlerConfiguration: IHandlersConfiguration, _rubberbandHandler: RubberbandHandler, _viewportHandler: IViewportHandler, _spotlightHandler: SpotlightHandler, _hoverHandler: IHoverHandler, _snapLinesHandler: ISnapLinesHandler, _canvasElementHandler: ICanvasElementHandler, _interactiveZonesHandler: IInteractiveZonesHandler);
    set textRenderer(value: TextRenderer);
    set conf(conf: IHandlersConfiguration);
    setTextWhizzModule(textWhizz: typeof TextWhizz): void;
    redrawActiveTextCanvas(context: ITextEditorContext, layers: Layer[]): void;
    redrawActiveCanvas(layers: Layer[], activeCanvas: HTMLCanvasElement, workspace: IWorkspace, productHandler: IProductHandler, offset: PointF): void;
    redrawSelectionCanvas(designCanvas: HTMLCanvasElement, workspace: IWorkspace, style: CanvasRendererStyle, textContext: ITextLimitsContext & ITextEditorContext & ITranslationsContext, viewer: IViewportContext & IWorkspaceContext & IRulersContext, contentAngle: number, offset: PointF, drawShadow?: boolean, drawSnapLines?: boolean): void;
    redrawInactiveCanvas(layers: Layer[], surfaceCanvas: HTMLCanvasElement, inactiveCanvas: HTMLCanvasElement, workspace: IWorkspace, margins: IMargins, mul: number, productHandler: IProductHandler, offset: PointF, mockupMarginWorkaroundEnabled?: boolean): void;
    drawRubberband(context: CanvasRenderingContext2D, rubberband: Rubberband, offset: PointF): void;
    drawWaitClock(context: CanvasRenderingContext2D, center: PointF, mul: number): void;
    setLoadingImageUrl(url: string): void;
    drawTextCursor(canvas: HTMLCanvasElement, itemHandler: BaseRectangleItemHandler, callback: (context: CanvasRenderingContext2D) => void, workspace: IWorkspace, mul: number, offset: PointF): void;
    clearTextCursor(canvas: HTMLCanvasElement): void;
    applyContextScale(renderingContext: CanvasRenderingContext2D, workspace: IWorkspace, offset: PointF, clipByWorkspace?: boolean): CanvasRenderingContext2D;
    private _getScaleFactor;
    private _drawInteractiveZones;
    private _drawInteractiveZone;
    private _getLabelPosition;
    private _drawShadow;
    private _applyMatrixToPoint;
    private _applyMatrixToRectangle;
    private _drawSnapLines;
    private _getResizeIndex;
    private _drawSelection;
    private _drawSpotlights;
    private _drawHover;
    private _drawHoverRect;
    private _calculateLabelPlacement;
    private _drawHighlight;
    private _drawHighlightRects;
    private _drawSpotlight;
    private _alignPoint;
    private _alignRectangle;
    private _drawRotateGrip;
    private _loadRotationIconImage;
    private _drawGripRectangle;
    private _getMemoryCanvas;
    private _getTextureCanvas;
    private _drawHandler;
    private _drawMockupWorkaround;
    private _needToShowLimits;
    private _drawLimitsMessage;
    private _drawVerticalLine;
    private _drawSnapLineMark;
    private _drawHorizontalLine;
    private _getContext;
    private _getScaledContext;
    private _getClippingRectangle;
    private _contextSetClipping;
    private _isEditing;
    private _getItemHandlersByRenderState;
    private _drawFade;
    private _drawMargins;
}