@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
46 lines (45 loc) • 1.75 kB
TypeScript
import { ILtrb, PointF, RotatedRectangleF } from "@aurigma/design-atoms-model/Math";
import { BaseRectangleItemHandler } from "../../ItemHandlers";
export interface ISelectionProcessModifier {
/** Returns delta between startPoint and currentPoint */
beforeMovePerformed(data: IMoveData): PointF;
/** Returns target rectangle */
beforeResizePerformed(data: IResizeData): RotatedRectangleF;
/** Returns target rectangle */
beforeRotatePerformed(data: IRotateData): RotatedRectangleF;
}
export interface IMoveData {
/** Point of mousedown or touchstart in workspace coordinates */
startPoint: PointF;
/** Delta between startPoint and currentPoint */
delta: PointF;
/** Delta between currentPoint and previousPoint */
momentDelta: PointF;
/** Rectangle state when move was started */
startRectangle?: RotatedRectangleF;
border?: ILtrb;
}
export interface IItemHandlerRectData {
itemType: string;
startRectangle: RotatedRectangleF;
}
export interface IResizeData {
/** Current rectangle state */
currentRect: RotatedRectangleF;
/** Rectangle state when resize was started */
startRectangle: RotatedRectangleF;
/** Previous rectangle state */
previousRectangle: RotatedRectangleF;
/** Availability of arbitrary resize */
arbitraryResize: boolean;
/** Index of grips is being resized now */
resizeIndex: number;
startItemHandlersRects: IItemHandlerRectData[];
rectangleItemHandlers?: BaseRectangleItemHandler[];
}
export interface IRotateData {
/** Current rectangle state */
currentRect: RotatedRectangleF;
/** Previous rectangle state */
previousRectangle: RotatedRectangleF;
}