@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
128 lines (127 loc) • 5.84 kB
TypeScript
import { Collection } from "@aurigma/design-atoms-model/Collection";
import { RotatedRectangleF, ILtrb, RectangleF, PointF } from "@aurigma/design-atoms-model/Math";
import { ManipulationPermissions } from "@aurigma/design-atoms-model/Product/Items";
import { AnyFunction } from "@aurigma/design-atoms-model/Utils/Types";
import { IRotateByPointParams, IMoveByPointParams, IResizeByPointParams, IMoveParams } from "./SelectionRectangleHandler";
import { SelectionHitTestManager } from "../SelectionHitTestManager";
import { BaseRectangleItemHandler } from "../../ItemHandlers";
import { HitTestManager } from "../HitTestManager";
import { Canvas } from "../../Canvas";
import { InputState } from "../../Input/InputManager/IInputManager";
import { ISelectionOptions } from "./ISelectionOptions";
import { SnapLinesHandler } from "../../Viewer/SnapLinesHandler";
import { IInteractiveZonesHandler } from "../../Viewer/Interfaces/IInteractiveZonesHandler";
import { ISelectionHandler, RectangleSignsType } from "./ISelectionHandler";
export declare class SelectionHandler implements ISelectionHandler {
private _canvas;
private _snapLinesHandler;
private _interactiveZonesHandler;
private _selectionRectangleHandler;
private _selectionProcessModifier;
private _selectionHitTestManager;
private _itemHandlers;
private _rectangle;
private _parentSelectionRectangle;
private _multipleSelectionEnabled;
private _currentItemHandler;
private _parentItemHandler;
private _enabled;
private _border;
private _skipUpdate;
private _locked;
private _state;
private _region;
private _ignoreSimpleMode;
private _manipulationPermissions;
private _resizeIndex?;
private _rectangleSigns;
static readonly cw: number[];
static readonly ch: number[];
constructor(hitTestManager: HitTestManager, _canvas: Canvas, _snapLinesHandler: SnapLinesHandler, _interactiveZonesHandler: IInteractiveZonesHandler);
get enabled(): boolean;
get selectedItemHandlers(): Collection<BaseRectangleItemHandler>;
get currentItemHandler(): BaseRectangleItemHandler;
get selectionHitTestManager(): SelectionHitTestManager;
get locked(): boolean;
get border(): ILtrb;
get rectangle(): RotatedRectangleF;
get parentRectangle(): RotatedRectangleF;
get region(): RectangleF;
get resizeIndex(): number;
set ignoreSimpleMode(value: boolean);
private _setRectangle;
get multipleSelectionEnabled(): boolean;
set multipleSelectionEnabled(value: boolean);
lock(saveSelectedItems?: boolean): void;
unlock(): void;
enable(): void;
disable(): void;
rotateByPoint(args: IRotateByPointParams, state: InputState, startPoint?: PointF): void;
moveByPoint(args: IMoveByPointParams, state: InputState, ignoreSnapLines: boolean, startPoint?: PointF): void;
resizeByPoint(args: IResizeByPointParams, state: InputState, startPoint?: PointF): void;
private _notifyItemHandlersChanged;
move(args: IMoveParams, state: InputState): void;
isItemHandlerSelected(itemHandler: BaseRectangleItemHandler): boolean;
isOnlyThisItemHandlerSelected(itemHandler: BaseRectangleItemHandler): boolean;
setSelectedItemHandlers(itemHandlers: BaseRectangleItemHandler[], dontClean?: boolean): void;
private _cancelEditMode;
clearSelectedItemHandlers(): void;
addSelectedItemHandler(itemHandler: BaseRectangleItemHandler): void;
removeSelectedItemHandler(itemHandler: BaseRectangleItemHandler): void;
update(force?: boolean): void;
private _update;
private _updateParentSelectionRectangle;
private _getRegion;
getSelectionDrawingParams(): ISelectionOptions;
getHighlightRectangles(): RotatedRectangleF[];
get visibleRectangle(): RotatedRectangleF;
get rectangleSigns(): RectangleSignsType;
private _getVisibleSelectionRectangle;
private _updatePermissions;
get manipulationPermissions(): ManipulationPermissions;
get allowManipulation(): boolean;
get allowMove(): boolean;
private get _allowNegativeResize();
private _selectionChanged;
addOnSelectionChanged(handler: () => any): void;
removeOnSelectionChanged(handler: () => any): void;
private _onSelectionItemHandlersChanged;
private _updateParentItemHandler;
private _onParentHandlerPropertyChanged;
private _selectionRectangleChanged;
private _selectionStateChanged;
private _selectionAngleChanged;
private _selectionMoved;
private _selectionResized;
private _getHistoryUpdateMode;
private get _items();
private _onItemHandlersItemAdded;
private _onItemHandlersItemRemoved;
private _onSelectedItemHandlerChanged;
addSelectedItemHandlersChanged: (handler: AnyFunction) => void;
removeSelectedItemHandlersChanged: (handler: AnyFunction) => void;
private _fillSnapData;
dispose(): void;
private _currentItemChangedEvent;
addCurrentItemChanged(listener: (item: BaseRectangleItemHandler) => void): void;
removeCurrentItemChanged(listener: (item: BaseRectangleItemHandler) => void): void;
get isIdle(): boolean;
get isResizing(): boolean;
get isRotating(): boolean;
get isDragging(): boolean;
}
export declare enum SelectionState {
Idle = 0,
Select = 1,
Drag = 2,
Resize = 3,
Rotate = 4
}
export declare class ResizeHelper {
static isLeftResizeGrip(index: number): boolean;
static isTopResizeGrip(index: number): boolean;
static isRightResizeGrip(index: number): boolean;
static isBottomResizeGrip(index: number): boolean;
static isCornerResizeGrip(index: number): boolean;
static isEdgeResizeGrip(index: number): boolean;
}