import { MoveableManagerInterface, Renderer, NgxMoveableComponent } from "ngx-moveable"; import { ViewChild, ElementRef, Component } from "@angular/core"; const DimensionViewable = { name: "dimensionViewable", props: [], events: [], render(moveable: MoveableManagerInterface, React: Renderer) { const rect = moveable.getRect(); return React.createElement("div", { key: "dimension-viewer", className: "moveable-dimension", style: { position: "absolute", left: `${rect.width / 2}px`, top: `${rect.height + 20}px`, background: "#4af", borderRadius: "2px", padding: "2px 4px", color: "white", fontSize: "13px", whiteSpace: "nowrap", fontWeight: "bold", willChange: "transform", transform: `translate(-50%, 0px)` } }, [ "\r\n ", Math.round(rect.offsetWidth), " x ", Math.round(rect.offsetHeight), "\r\n " ]); } } as const; @Component({ selector: "ngx-app", templateUrl: "./App.component.html" }) export default class NgxAppComponent { @ViewChild("targetRef") targetRef!: ElementRef; onDrag(e) { e.target.style.transform = e.transform; } onResize(e) { e.target.style.width = `${e.width}px`; e.target.style.height = `${e.height}px`; e.target.style.transform = e.drag.transform; } onRotate(e) { e.target.style.transform = e.drag.transform; } }