@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
90 lines (89 loc) • 3.96 kB
TypeScript
import { RotatedRectangleF, PointF } from "@aurigma/design-atoms-model/Math";
import { SelectionState } from "./SelectionHandler";
import { ISelectionProcessModifier } from "./ISelectionProcessModifier";
import { BaseRectangleItemHandler } from "../../ItemHandlers/BaseRectangleItemHandler";
export declare class SelectionRectangleHandler {
private _selectionModifier;
constructor(_selectionModifier?: ISelectionProcessModifier);
private _rectangle;
private _startRectangle;
private _cumulativeDelta;
private _startPoint;
private _lastPoint;
private _resizeIndex;
private _resizeOrigin;
private _allowNegativeResize;
private _itemHandlerResizeStartRects;
private _state;
get rectangle(): RotatedRectangleF;
startRotatingByPoint(startPoint: PointF, startRectangle: RotatedRectangleF): void;
updateRotatingByPoint(params: IRotateByPointParams): void;
startMovingByPoint: (startPoint: PointF, startRectangle: RotatedRectangleF) => void;
updateMovingByPoint: (args: IMoveByPointParams) => void;
startResizingByPoint: (startPoint: PointF, startRectangle: RotatedRectangleF, resizeIndex: number, allowNegativeResize: boolean, itemHandlers: BaseRectangleItemHandler[]) => void;
private _getItemHandlersRects;
updateResizingByPoint(args: IResizeByPointParams, itemHandlers?: BaseRectangleItemHandler[]): void;
startMove(startRectangle: RotatedRectangleF): void;
move(params: IMoveParams): void;
private _updateRectangle;
private _setState;
private _reset;
private _rectangleChanged;
addRectangleChanged(handler: (args: ISelectionRectangleEventArgs) => any): void;
removeRectangleChanged(handler: (args: ISelectionRectangleEventArgs) => any): void;
private _rectangleAngleChanged;
addRectangleAngleChanged(handler: (args: IRectangleRotatedEventArgs) => any): void;
removeRectangleAngleChanged(handler: (args: IRectangleRotatedEventArgs) => any): void;
private _rectangleResized;
addRectangleResized(handler: (args: IRectangleResizedEventArgs) => any): void;
removeRectangleResized(handler: (args: IRectangleResizedEventArgs) => any): void;
private _rectangleCenterChanged;
addRectangleMoved(handler: (args: IRectangleMovedEventArgs) => any): void;
removeRectangleMoved(handler: (args: IRectangleMovedEventArgs) => any): void;
private _stateChanged;
addStateChanged(handler: (state: SelectionState) => any): void;
removeStateChanged(handler: (state: SelectionState) => any): void;
private _checkStartArguments;
private _checkUpdateArguments;
private _setStartParams;
}
export interface ISelectionRectangleEventArgs {
rectangle: RotatedRectangleF;
finished: boolean;
}
export interface IRectangleRotatedEventArgs extends ISelectionRectangleOperationParams {
angle: number;
origin: PointF;
}
export interface IRectangleResizedEventArgs extends ISelectionRectangleOperationParams {
origin: PointF;
scaleX: number;
scaleY: number;
angle?: number;
}
export interface IRectangleMovedEventArgs extends ISelectionRectangleOperationParams {
delta: PointF;
}
export interface ISelectionRectangleOperationParams {
finished: boolean;
}
export interface IRotateByPointParams extends ISelectionRectangleOperationParams {
tolerance: number;
rotationStep: number;
point: PointF;
}
export interface IMoveByPointParams extends ISelectionRectangleOperationParams {
point: PointF;
allowMoveHorizontal?: boolean;
allowMoveVertical?: boolean;
}
export interface IMoveParams extends ISelectionRectangleOperationParams {
delta: PointF;
allowMoveHorizontal?: boolean;
allowMoveVertical?: boolean;
}
export interface IResizeByPointParams extends ISelectionRectangleOperationParams {
point: PointF;
arbitraryResize: boolean;
resizeIndex: number;
}