@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
66 lines (65 loc) • 4.28 kB
TypeScript
import { PointF, IPoint, RectangleF } from "@aurigma/design-atoms-model/Math";
import { IWorkspaceContext } from "../IWorkspaceContext";
import { IViewportContext } from "../IViewportContext";
export interface IRulersContext {
rulerEnabled: boolean;
rulerWidth: number;
}
export interface IViewer {
element: HTMLElement;
}
export declare class CoordinatesConvertUtils {
static workspaceToContentPoint(point: PointF, context: IViewportContext): PointF;
static controlToContentPoint(point: PointF, context: IViewportContext): PointF;
static controlToPagePoint(point: PointF | IPoint, viewerElement: HTMLElement): PointF;
static contentToControlPoint(point: PointF, context: IViewportContext): PointF;
static controlToContentRectangle(rect: RectangleF, context: IViewportContext): RectangleF;
static contentToControlRectangle(rect: RectangleF, context: IViewportContext): RectangleF;
static workspaceToControlPoint(point: PointF, context: IViewportContext): PointF;
static productToControlPoint(point: PointF, context: IViewportContext, offset: PointF): PointF;
static workspaceToWhiteSpacePoint(point: PointF, context: IViewportContext & IRulersContext): PointF;
static workspaceToWhiteSpacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext & IRulersContext): PointF;
static whitespaceToWorkspacePoint(point: PointF, context: IViewportContext & IRulersContext): PointF;
static whitespaceToWorkspacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext & IRulersContext): PointF;
/**
* Translates coordinates from the control-related coordinate system to the workspace-related one
* @param point Coordinates in the control coordinate system
* @returns Coordinates in the workspace coordinate system
*/
static controlToWorkspacePoint(point: PointF, context: IViewportContext): PointF;
/**
* Translates coordinates from the control-related coordinate system to the workspace-related one.
* @param point - Coordinates in the control coordinate system (PointF).
* @returns Coordinates in the workspace coordinate system (PointF).
*/
static controlToWorkspacePointCorrect(point: PointF, context: IViewportContext & IWorkspaceContext): PointF;
static workspaceToControlRectangle(rect: RectangleF, context: IViewportContext): RectangleF;
/**
* Translates coordinates from the page-related coordinate system to the control-related one
* @param pagePoint Coordinates in the page coordinate system.
*/
static pageToControlPoint(pagePoint: PointF, viewer: IViewer): PointF;
/**
* Translates coordinates from the page-related coordinate system to the workspace-related one
* @param pagePoint Coordinates in the page coordinate system
*/
static pageToWorkspacePoint(pagePoint: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext, dontRotate?: boolean): PointF;
static pageToWhitespace(pagePoint: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext & IRulersContext): PointF;
static workspaceToPagePoint(source: PointF, viewer: IViewer & IViewportContext & IWorkspaceContext): PointF;
private static _transformByContentAnglePageToWs;
private static _transformByContentAngleWsToPage;
static workspaceToControlPointCorrect(source: PointF, context: IViewportContext & IWorkspaceContext): PointF;
/**
* Translates rectangle coordinates from the control-related coordinate system to the workspace-related one.
* @param rect - Rectangle coordinates in the control coordinate system (Rectangle).
* @returns Rectangle coordinates in the workspace coordinate system (Rectangle).
*/
static controlToWorkspaceRectangle(rectangle: RectangleF, context: IViewportContext): RectangleF;
static contentToWhitespaceRectangle(rect: RectangleF, context: IRulersContext & IViewportContext): RectangleF;
static workspaceToProduct(workspacePoint: PointF, offset?: PointF): PointF;
static productToWorkspace(product: PointF, offset?: PointF): PointF;
static getElementPageCoord(domElement: HTMLElement): {
left: number;
top: number;
};
}