@alauda-fe/common
Version:
Alauda frontend team common codes.
33 lines (32 loc) • 931 B
TypeScript
import { ElementRef } from '@angular/core';
export interface TransformState {
origin: [OriginX, OriginY];
translate: readonly [number, number];
scale: number;
}
export interface Rects {
canvasRect: Rect;
surfaceRect: Rect;
}
export interface Rect {
top: number;
bottom: number;
left: number;
right: number;
width: number;
height: number;
offsetTop: number;
offsetLeft: number;
offsetWidth: number;
offsetHeight: number;
}
export type TransformAction = (transform: TransformState, rects: Rects) => Partial<TransformState>;
export type NodeID = string | number;
export interface GraphNode {
getRect: () => Rect;
el?: ElementRef<HTMLElement>;
}
export type OriginX = 'center' | 'left' | 'right';
export type OriginY = 'center' | 'top' | 'bottom';
export type NodeEdge = 'top' | 'bottom' | 'left' | 'right';
export type Points = [[number, number], [number, number]];