@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
129 lines (128 loc) • 6.39 kB
TypeScript
import { DragNDropHandler } from "./DragNDropHandler";
import { LayerCollection } from "./LayerCollection";
import { BaseRectangleItemHandler, PlaceholderItemHandler } from "./ItemHandlers";
import { PointF, RotatedRectangleF, RectangleF } from "@aurigma/design-atoms-model/Math";
import { Viewer } from "./Viewer";
import { RotateHandler } from "./RotateHandler";
import { TextAlignment, TextVerticalAlignment, Size } from "@aurigma/design-atoms-model/Product/Items";
import { SelectionHandler } from "./Services/Selection/SelectionHandler";
export interface ITextEditorElementHandler {
addTextEditorStyles(css: string): void;
textEditorDiv: HTMLElement;
textEditorInnerDiv: HTMLElement;
showTextEditor(rectangle: RotatedRectangleF, textAlignment: TextAlignment, html: string, borderWidth: number, borderColor: string, fillColor: string, opacity: number, verticalAlignment: TextVerticalAlignment, isVertical: boolean): void;
hideTextEditor(): any;
getTextEditorFormattedText(): string;
}
export interface IActiveTextCanvasHandler {
moveActiveTextCanvasOnTop(): void;
moveActiveTextCanvasBack(): void;
}
export declare class CanvasElementHandler implements ITextEditorElementHandler, IActiveTextCanvasHandler {
private _viewer;
private _selection;
private _dndHandler;
private _rotateHandler;
private _config;
private _document;
private _parent;
private _whitespace;
private _childrenToAdd;
private _dndDiv;
private _dndStyle;
private _buttonStyle;
private _textEditorDiv;
private _textEditorInnerDiv;
private readonly _staticTextCanvasId;
staticTextCanvas: HTMLCanvasElement;
private _offset;
get offset(): PointF;
set offset(value: PointF);
constructor(_viewer: Viewer, _selection: SelectionHandler, _dndHandler: DragNDropHandler, _rotateHandler: RotateHandler, config: ICanvasElementHandlerConfiguration);
setConf(conf: ICanvasElementHandlerConfiguration): void;
private get _canvas();
addStyles(): void;
private _addButtonStyles;
private _addDndStyle;
addTextEditorStyles(css: string): void;
private _addStaticTextCanvas;
private _viewportDiv;
private _viewportSurfaceCanvas;
private _viewportInactiveCanvas;
private _viewportActiveCanvas;
private _viewportDesignCanvas;
private _viewportActiveTextCanvas;
private _viewportCursorCanvas;
private _viewportSelectionCanvas;
private _viewportTextureCanvas;
private _viewportMemoryCanvas;
get viewportSurfaceCanvas(): HTMLCanvasElement;
get viewportInactiveCanvas(): HTMLCanvasElement;
get viewportActiveCanvas(): HTMLCanvasElement;
get viewportDesignCanvas(): HTMLCanvasElement;
get viewportActiveTextCanvas(): HTMLCanvasElement;
get viewportCursorCanvas(): HTMLCanvasElement;
get viewportSelectionCanvas(): HTMLCanvasElement;
get viewportTextureCanvas(): HTMLCanvasElement;
get viewportMemoryCanvas(): HTMLCanvasElement;
private _appendViewportCanvas;
addViewport(viewport: HTMLDivElement): void;
private _createViewportCanvas;
updateViewport(): void;
private _updateViewportCanvas;
removeViewport(): void;
addElement(parent: HTMLElement, whitespace: HTMLElement, width: number, height: number): void;
replaceStaticTextCanvas(): HTMLCanvasElement;
createCanvas(size: Size): HTMLCanvasElement;
removeElement(): void;
updateElementSize(width: number, height: number, fullUpdate?: boolean): void;
moveActiveTextCanvasOnTop(): void;
moveActiveTextCanvasBack(): void;
private _addDndDiv;
private _removeDndDiv;
showDnd(point: PointF, image: HTMLImageElement, angle: number): void;
hideDnd(): void;
addChild: (element: HTMLElement) => void;
removeChilds(element: HTMLElement): void;
addPlaceholderButtonGroup(placeholder: PlaceholderItemHandler, viewer: Viewer): void;
removePlaceholderButtonGroup(placeholder: PlaceholderItemHandler): void;
updatePlaceholderButtonGroup(placeholder: PlaceholderItemHandler, viewer: Viewer): void;
updatePlaceholderButtonGroupPosition(placeholder: PlaceholderItemHandler, viewer: Viewer): void;
addViolationContainer(itemHandler: BaseRectangleItemHandler, viewer: Viewer): void;
removeViolationContainer(handler: BaseRectangleItemHandler): void;
updateViolationContainer(itemHandler: BaseRectangleItemHandler, updatePosition: boolean, viewer: Viewer): void;
private _showQualityChangeContainer;
updateViolationContainerPosition(itemHandler: BaseRectangleItemHandler, viewer: Viewer): void;
private readonly _textEditorId;
private _addTextEditorDiv;
private _removeTextEditorDiv;
private _onZoomedScrolledDelegate;
private _appendTextEditorDivToDom;
private _removeTextEditorDivFromDom;
get textEditorDiv(): HTMLElement;
get textEditorInnerDiv(): HTMLElement;
showTextEditor(rectangle: RotatedRectangleF, textAlignment: TextAlignment, html: string, borderWidth: number, borderColor: string, fillColor: string, opacity: number, textVerticalAlignment: TextVerticalAlignment, isVertical: boolean): void;
private _getOutlineStyleFromDashPattern;
changeTextEditorDivOutlineColor(toRed: boolean): void;
hideTextEditor(): void;
getTextEditorFormattedText(): string;
private _updateTextEditorPosition;
calculateRenderStateForItemHandlers(layers: LayerCollection): boolean;
private setHandlerState;
private _createCanvasElement;
static setElementSize(element: HTMLCanvasElement, width: number, height: number, fullUpdate?: boolean): void;
static showElement(element: HTMLElement, withoutAnimation?: boolean): void;
static hideElement(element: HTMLElement, withoutAnimation?: boolean): void;
private _stopPropagationFnc;
private _isPlaceholder;
private _isImage;
private _isGroup;
private _isImageOrPlaceholder;
private _getSelectButtonTitle;
static getControlRectangle(rectangle: RotatedRectangleF, viewer: Viewer): RectangleF;
private get _isDefaultInputHandler();
static rotateRectangle(rectangle: RotatedRectangleF, viewer: Viewer): RotatedRectangleF;
}
export interface ICanvasElementHandlerConfiguration {
handleButtonEnabled: boolean;
}