@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
493 lines (492 loc) • 21.9 kB
TypeScript
import * as TextWhizz from "@aurigma/text-whizz/TextWhizzJS";
import { Item, RectangleF, PointF, RotatedRectangleF, Collection, Func } from "@aurigma/design-atoms-model";
import { ITextEditor, ILimitsViolationEventData } from "@aurigma/design-atoms-text";
import { ItemHandler } from "./ItemHandlers/ItemHandler";
import { PlaceholderItemHandler } from "./ItemHandlers/PlaceholderItemHandler";
import { Service } from "./Services/Service";
import { LayerCollection } from "./LayerCollection";
import { DragNDropHandler } from "./DragNDropHandler";
import { RotateHandler } from "./RotateHandler";
import { Viewer } from "./Viewer/Viewer";
import { UpdateStatus } from "./UpdateStatus";
import { BaseRectangleItemHandler } from "./ItemHandlers/BaseRectangleItemHandler";
import { CanvasData } from "./CanvasData";
import { HandlerFactoryByItem } from "./ItemHandlers/HandlerFactoryByItem";
import { History } from "./History";
import { HoverHandler } from "./Input/InputHandler/Default/HoverHandler";
import { IActiveTextCanvasHandler } from "./CanvasElementHandler";
import { SnapLinesHandler } from "./Viewer/SnapLinesHandler";
import { GroupItemHandler } from "./ItemHandlers/GroupItemHandler";
import { FontRegistry } from "./InPlace/FontRegistry";
import { NewBaseTextItemHandler } from "./ItemHandlers";
import { TextRenderer } from "./InPlace/TextRenderer";
import { IViewerConfiguration, TextEditorMode } from "./Viewer/Interfaces";
import { Translations } from "./Viewer/Translations";
import { CanvasRendererStyle } from "./Canvas/CanvasRendererStyle";
import { IFontService } from "./InPlace/IFontService";
import { ISpotlightOptions } from "./Canvas/Interfaces/ISpotlightOptions";
import { HitTestManager } from "./Services/HitTestManager";
import { SelectionHandler } from "./Services/Selection/SelectionHandler";
import { RubberbandHandler } from "./Input/InputHandler/Default/RubberbandHandler";
import { FloatingToolbarManager } from "./Services/FloatingToolbar/FloatingToolbarManager";
import { GetItemHandlersOptions, ICanvas } from "./ICanvas";
import { IDesignAtomsApiClient } from "./Services/IDesignAtomsApiClient";
import { UpdateButtonGroupsOptions } from "./Viewer/UpdateButtonGroupsOptions";
import { ProductHandler } from "./Services";
import { IWorkspace } from "./IWorkspace";
import { ICanvasDataSource } from "./ICanvasDataSource";
import { IRenderingConfigProvider } from "./IRenderingConfigProvider";
/**
* Represents the main host object containing a stack of layers.
*
* This client-side class corresponds to the server-side class `Canvas` and provides access to its primary members in TypeScript.
*/
export declare class Canvas implements ICanvas, ICanvasDataSource {
private _viewer;
private _prevWorkspaceSize;
private _selection;
private _spotlightHandler;
private _dndHandler;
private _hoverHandler;
private _rotateHandler;
private _service;
private _parent;
private _document;
private _violationContainersHandler;
private _canvasRenderer;
private _canvasElementHandler;
private _textWhizz;
private _fontRegistry;
private _textRenderer;
private _hitTestManager;
private _rubberbandHandler;
private _textEditor;
private _clipboard;
private _inputTextValidator;
private _violationWarningButtonCssClass;
private _goodViolationIconCssClass;
private _warningViolationIconCssClass;
private _violationBadIconCssClass;
private _qualityChangeContainerCssClass;
private _violationContainerCssClass;
private _qualityChangeScaleBarCssClass;
private _qualityBadToWarningChangeScaleBarCssClass;
private _qualityWarningToGoodChangeScaleBarCssClass;
private _qualityBadToGoodChangeScaleBarCssClass;
private _qualityNoAnimationChangeScaleBarCssClass;
private _qualityChangeInfoBarCssClass;
private _placeholderButtonGroupCssClass;
private _selectImageButtonCssClass;
private _selectBarcodeButtonCssClass;
private _doneButtonCssClass;
private _handleButtonCssClass;
private _bigButtonGroupCssClass;
private _backgroundImage;
private _background;
private _initialization;
private _initialized;
private _zoom;
private _workspaceWidth;
private _workspaceHeight;
private _suppressOutOfRegionManipulation;
private _targetDpi;
private _mouseMoveTimeout;
private _disableSmoothing;
private _selectionColor;
private _selectionWidth;
private _marginColor;
private _marginWidth;
private _leftMargin;
private _rightMargin;
private _topMargin;
private _bottomMargin;
private _ready;
private _updateCalled;
private _isRedrawPaused;
private _redrawRequested;
private _pause;
private _maxFontSize;
private _minFontSize;
private _maxLeading;
private _minLeading;
private _constrainedMarginEnabled;
private _keyEventEnabled;
private _onSelectedItemHandlersDeletingDelegate;
private _onSelectedItemHandlersChangedDelegate;
private _textInputIssueUserConfirmationDelegate;
private _tags;
private _canvasElementSize;
private _hiddenFieldID;
private _status;
private _layers;
private _history;
private _snapLinesHandler;
private _floatingToolbarManager;
private _autoPlaceholderEditModeEnabled;
private _simpleMode;
private _ignorePermissionsMode;
private _offset;
private _viewportHandler;
private _textEditorRenderer;
private _onScrollEvent;
private _zoomChangedEvent;
private _statusChangedEvent;
private _callbackExceptionEvent;
private _initializedEvent;
private _invokingCallbackRequestEvent;
private _currentItemHandlerChangedEvent;
private _selectedItemHandlersChangedEvent;
private _dragNDropDoneEvent;
private _dragNDropStartingEvent;
private _dragNDropPerformedEvent;
private _readyEvent;
private _workspaceSizeChangedEvent;
private _layersUpdatedEvent;
private _beforeReplaceItemHandlerEvent;
private _afterReplaceItemHandlerEvent;
private _onSelectionLockedEvent;
private _lastLimitsEvent;
private _errorInput;
private _errorInputTimerId;
private _readonlyCanvasMode;
readonly handlerFactory: HandlerFactoryByItem;
translations: Translations;
/** @internal */
constructor(viewer: Viewer);
get readonlyCanvasMode(): boolean;
set readonlyCanvasMode(value: boolean);
get canvasItemHoverEnabled(): boolean;
set canvasItemHoverEnabled(value: boolean);
get canvasElementSize(): {
width?: number;
height?: number;
};
get floatingToolbarManager(): FloatingToolbarManager;
get snapLinesHandler(): SnapLinesHandler;
get hoverHandler(): HoverHandler;
get selection(): SelectionHandler;
get rubberbandHandler(): RubberbandHandler;
get rotateHandler(): RotateHandler;
get history(): History;
set history(value: History);
get viewerConfiguration(): IViewerConfiguration;
set viewerConfiguration(config: IViewerConfiguration);
get dndHandler(): DragNDropHandler;
get hiddenFieldID(): string;
set hiddenFieldID(value: string);
get service(): Service;
set service(value: Service);
get viewer(): Viewer;
get activeTextCanvasHandler(): IActiveTextCanvasHandler;
get hitTestManager(): HitTestManager;
get textWhizz(): typeof TextWhizz;
get fontRegistry(): FontRegistry;
get textEditor(): ITextEditor;
set textEditor(value: ITextEditor);
get textInputIssueUserConfirmationDelegate(): Func<Promise<boolean>, string>;
get textRenderer(): TextRenderer;
get simpleMode(): boolean;
set simpleMode(value: boolean);
get ignorePermissionsMode(): boolean;
set ignorePermissionsMode(value: boolean);
get offset(): PointF;
set offset(value: PointF);
get ready(): boolean;
/** Gets an object containing numbers of lines, rectangles, ellipses, texts, images. */
get tags(): any;
/** Sets an object containing numbers of lines, rectangles, ellipses, texts, images. */
set tags(tags: any);
get width(): number;
get height(): number;
get keyEventEnabled(): boolean;
set keyEventEnabled(v: boolean);
get marginColor(): string;
set marginColor(v: string);
get marginWidth(): number;
set marginWidth(v: number);
get selectionColor(): string;
set selectionColor(value: string);
get selectionWidth(): number;
set selectionWidth(value: number);
get margin(): number;
set margin(v: number);
get leftMargin(): number;
set leftMargin(v: number);
get rightMargin(): number;
set rightMargin(v: number);
get topMargin(): number;
set topMargin(v: number);
get bottomMargin(): number;
set bottomMargin(v: number);
set constrainedMarginEnabled(v: boolean);
get constrainedMarginEnabled(): boolean;
get targetDpi(): number;
set targetDpi(v: number);
set suppressOutOfRegionManipulation(v: boolean);
get suppressOutOfRegionManipulation(): boolean;
set violationWarningButtonsEnabled(v: boolean);
get violationWarningButtonsEnabled(): boolean;
set qualityChangeContainersEnabled(v: boolean);
get qualityChangeContainersEnabled(): boolean;
get maxFontSize(): number;
set maxFontSize(v: number);
get minFontSize(): number;
set minFontSize(v: number);
get maxLeading(): number;
set maxLeading(v: number);
get minLeading(): number;
set minLeading(v: number);
get status(): UpdateStatus;
/** @internal */
get surfaceCanvas(): HTMLCanvasElement;
get multipleSelectionEnabled(): boolean;
set multipleSelectionEnabled(value: boolean);
get mouseMoveTimeout(): number;
set mouseMoveTimeout(value: number);
get disableSmoothing(): boolean;
set disableSmoothing(value: boolean);
get previewMode(): boolean;
set previewMode(value: boolean);
set background(value: string);
get background(): string;
set backgroundImage(value: any);
get workspaceWidth(): number;
get workspaceHeight(): number;
get initialization(): boolean;
get rotationGripColor(): string;
set rotationGripColor(v: string);
get resizeGripColor(): string;
set resizeGripColor(v: string);
get rotationGripSize(): number;
set rotationGripSize(v: number);
get resizeGripSize(): number;
set resizeGripSize(v: number);
get resizeGripLineColor(): string;
set resizeGripLineColor(value: string);
get hoverColor(): string;
set hoverColor(value: string);
get rotationGripLineColor(): string;
set rotationGripLineColor(value: string);
get rotationGripLineLength(): number;
set rotationGripLineLength(value: number);
get placeholderButtonGroupCssClass(): string;
set placeholderButtonGroupCssClass(value: string);
get style(): CanvasRendererStyle;
set style(value: CanvasRendererStyle);
get violationContainerCssClass(): string;
set violationContainerCssClass(value: string);
get selectImageButtonCssClass(): string;
set selectImageButtonCssClass(value: string);
get selectBarcodeButtonCssClass(): string;
set selectBarcodeButtonCssClass(value: string);
get handleButtonCssClass(): string;
set handleButtonCssClass(value: string);
get doneButtonCssClass(): string;
set doneButtonCssClass(value: string);
get violationWarningButtonCssClass(): string;
set violationWarningButtonCssClass(value: string);
get qualityChangeContainerCssClass(): string;
set qualityChangeContainerCssClass(value: string);
get qualityChangeScaleBarCssClass(): string;
set qualityChangeScaleBarCssClass(value: string);
get qualityBadToWarningChangeScaleBarCssClass(): string;
set qualityBadToWarningChangeScaleBarCssClass(value: string);
get qualityWarningToGoodChangeScaleBarCssClass(): string;
set qualityWarningToGoodChangeScaleBarCssClass(value: string);
get qualityBadToGoodChangeScaleBarCssClass(): string;
set qualityBadToGoodChangeScaleBarCssClass(value: string);
get qualityNoAnimationChangeScaleBarCssClass(): string;
set qualityNoAnimationChangeScaleBarCssClass(value: string);
get qualityChangeInfoBarCssClass(): string;
set qualityChangeInfoBarCssClass(value: string);
get bigButtonGroupCssClass(): string;
set bigButtonGroupCssClass(value: string);
get goodViolationIconCssClass(): string;
set goodViolationIconCssClass(value: string);
get warningViolationIconCssClass(): string;
set warningViolationIconCssClass(value: string);
get badViolationIconCssClass(): string;
set badViolationIconCssClass(value: string);
get zoom(): number;
set autoPlaceholderEditModeEnabled(value: boolean);
get autoPlaceholderEditModeEnabled(): boolean;
get selectionVisibleRectangle(): RotatedRectangleF;
get currentItemHandler(): BaseRectangleItemHandler;
get layers(): LayerCollection;
set layers(v: LayerCollection);
get parentElement(): HTMLElement;
get inPlaceEditingHandler(): NewBaseTextItemHandler;
get mul(): number;
get contentUpdatingPlaceholderItemHandler(): PlaceholderItemHandler;
get contentEditingPlaceholderItemHandler(): PlaceholderItemHandler;
get selectedPlaceholderItemHandler(): PlaceholderItemHandler;
get selectedHandler(): ItemHandler;
get isInitialized(): boolean;
get isUpdating(): boolean;
get isSelectionLocked(): boolean;
get isSelectionResizing(): boolean;
get isSelectionRotating(): boolean;
get isSelectionDragging(): boolean;
get isSelectionIdle(): boolean;
get designAtomsApiClient(): IDesignAtomsApiClient;
get frontEndTextRenderingEnabled(): boolean;
get productHandler(): ProductHandler;
get lastLimitsEvent(): ILimitsViolationEventData;
get errorInput(): boolean;
get workspace(): IWorkspace;
get renderingConfigProvider(): IRenderingConfigProvider;
get contentAngle(): number;
private get _drawSnapLines();
setCursor(value: any, onBody: boolean): void;
ensureFocus(): void;
doesContainItem(item: Item): boolean;
getItemHandler<THandler extends ItemHandler>(item: Item): THandler;
deleteItemHandler(itemHandler: ItemHandler): void;
isDragSource(itemHandler: ItemHandler): boolean;
isDragTarget(itemHandler: ItemHandler): boolean;
setTextWhizzModule(textWhizz: typeof TextWhizz): void;
initTextEditor(textEditor: TextEditorMode, fontService: IFontService, useSimpleFontList: boolean, textInputIssueUserConfirmationDelegate: Func<Promise<boolean>, string>): void;
waitUpdate(itemHandlers?: ItemHandler[]): Promise<void[]>;
deleteSelectedItemHandlers(force?: boolean): void;
getAllItemHandlers(options?: GetItemHandlersOptions): ItemHandler[];
pauseUpdateTexts(): void;
resumeUpdateTexts(): void;
updateTexts(textToSkip?: any): void;
setWorkspaceSize(width: number, height: number, updateButtonGroup?: boolean): void;
setZoom(value: any, preventEvent?: boolean, options?: {
force?: boolean;
updateButtonGroup?: boolean;
fullUpdate?: boolean;
}): void;
calcPlatformLimitZoom(): number;
onScroll(): void;
updateSelection(force?: boolean): void;
getSelectedItemHandlers(): Collection<ItemHandler>;
setSelectedItemHandlers(itemHandlers: BaseRectangleItemHandler[]): void;
isItemHandlerSelected(itemHandler: any): boolean;
isOnlyThisItemHandlerSelected(itemHandler: any): boolean;
addSelectedItemHandler(itemHandler: any): void;
removeSelectedItemHandler(itemHandler: any): void;
clearSelectedItemHandlers(): void;
onDragNDropStarting(data: any): void;
onDragNDropDone(): void;
onDragNDropPerformed(data: any): void;
onSelectionLocked(): void;
enableSelection(): void;
disableSelection(): void;
getData(forService?: boolean, layerId?: any): CanvasData;
add_onScroll(h: any): void;
remove_onScroll(h: any): void;
add_zoomChanged(h: any): void;
remove_zoomChanged(h: any): void;
add_statusChanged(h: any): void;
remove_statusChanged(h: any): void;
add_callbackException(h: any): void;
remove_callbackException(h: any): void;
add_initialized(h: any): void;
remove_initialized(h: any): void;
add_invokingCallbackRequest(h: any): void;
remove_invokingCallbackRequest(h: any): void;
add_currentItemHandlerChanged(handler: (itemHandler: ItemHandler) => void): void;
remove_currentItemHandlerChanged(handler: (itemHandler: ItemHandler) => void): void;
add_selectedItemHandlerChanged(handler: (canvas: Canvas, itemHandler: ItemHandler) => void): void;
remove_selectedItemHandlerChanged(handler: (canvas: Canvas, itemHandler: ItemHandler) => void): void;
add_dragNDropDone(handler: (canvas: Canvas, itemHandler: ItemHandler) => void): void;
remove_dragNDropDone(handler: any): void;
add_dragNDropStarting(handler: any): void;
remove_dragNDropStarting(handler: any): void;
add_dragNDropPerformed(handler: any): void;
remove_dragNDropPerformed(handler: any): void;
add_ready(handler: any): void;
remove_ready(handler: any): void;
add_workspaceSizeChanged(handler: any): void;
remove_workspaceSizeChanged(handler: any): void;
add_layersUpdated(handler: any): void;
remove_layersUpdated(handler: any): void;
add_beforeReplaceItemHandler(handler: (eventArg?: ItemHandler) => any): void;
remove_beforeReplaceItemHandler(handler: (eventArg?: ItemHandler) => any): void;
add_afterReplaceItemHandler(handler: (eventArg?: ItemHandler) => any): void;
remove_afterReplaceItemHandler(handler: (eventArg?: ItemHandler) => any): void;
add_onSelectionLocked(handler: (eventArg?: Canvas) => any): void;
remove_onSelectionLocked(handler: (eventArg?: Canvas) => any): void;
updateViewport(): void;
addViewport(viewportElement: HTMLDivElement): void;
addElement(parentElement: any): void;
addStyles(): void;
showDnd(point: PointF, image: HTMLImageElement): void;
hideDnd(): void;
showSpotlight(items: Item[], options: ISpotlightOptions): void;
hideSpotlight(items?: Item[]): void;
/** @deprecated use showSpotlight() */
updateSpotlight(items: Item[], options: ISpotlightOptions): void;
showHover(item: Item): void;
hideHover(): void;
addPlaceholderButtonGroup(placeholder: PlaceholderItemHandler): void;
removePlaceholderButtonGroup(placeholder: PlaceholderItemHandler): void;
addViolationContainer(itemHandler: BaseRectangleItemHandler): void;
removeViolationContainer(handler: BaseRectangleItemHandler): void;
updateButtonGroups(options?: UpdateButtonGroupsOptions): void;
updateViolationContainers(updatePosition?: boolean, onlyVisible?: boolean): void;
updateViolationContainer(itemHandler: BaseRectangleItemHandler, updatePosition?: boolean): void;
updateViolationContainerPosition(itemHandler: BaseRectangleItemHandler): void;
updatePlaceholderButtonGroups(onlyVisible?: boolean): void;
updatePlaceholderButtonGroup(placeholder: PlaceholderItemHandler | GroupItemHandler): void;
updatePlaceholderButtonGroupPosition(placeholder: PlaceholderItemHandler): void;
violationWarningButtonHitTestObject(pt: PointF): BaseRectangleItemHandler;
getButtonGroupRectInGripsDiv(div: HTMLElement, ignoreRotate?: boolean): RectangleF;
pauseRedraw(): void;
continueRedraw(): void;
redraw(): void;
redrawSelection(): void;
redrawActiveTexts(): void;
subscribeLimitsMessage(): void;
unsubscribeLimitsMessage(): void;
redrawDesign: () => void;
changeTextEditorDivOutlineColor(toRed: boolean): void;
drawWaitClock(context: CanvasRenderingContext2D, center: PointF): void;
drawTextCursor(callback: (context: CanvasRenderingContext2D) => void): void;
clearTextCursor(): void;
workspaceToControl(pt: PointF): PointF;
controlToWorkspace(pt: PointF): PointF;
isSelectionByHitTest(pt: PointF): boolean;
initialize(): void;
checkReady(): void;
onLayerTextureLoaded(): void;
dispose(): void;
private _beginInitialization;
private _endInitialization;
private _onBeforeReplaceItemHandler;
private _onAfterReplaceItemHandler;
private _onHoverChanged;
private _initContainersObservation;
private _onItemRemoved;
private _onContainersChanged;
private _updateLayers;
private _updateCanvasElementHandlerConf;
private _getCanvasElementHandlerConf;
private _onServiceImageContainerLoaded;
private _setFontRegistry;
private _createTextWhizzEditor;
private _createMobileEditor;
private _getClipboard;
private _getInputTextValidator;
private _deleteSelectedItemHandlersWithoutConfirm;
private _canDeleteItemHandler;
private _updateBackgroundStyle;
private _updateCanvasElementSize;
private _onCurrentItemHandlerChanged;
private _removeElement;
private _onTranslationsChanged;
private _redraw;
private _redrawSelectionCanvas;
private _checkReady;
private _updateWrappingRectangles;
private _updateWrappingRectanglesWithoutTextWhizz;
private _getItemHandlerWrappingRectangle;
private _setRendererLoadingImageUrl;
private _indexOfLayer;
private _onTextLimitsEvent;
private _ontextMetricsChanged;
private _finishInputErrorMessage;
private _onInteractiveZonesStateChanged;
}