UNPKG

devexpress-diagram

Version:

DevExpress Diagram Control

25 lines (23 loc) 1.19 kB
import { PasteSelectionCommandBase } from "./PasteSelectionCommandBase"; import { DiagramItem } from "../../Model/DiagramItem"; import { Shape } from "../../Model/Shapes/Shape"; import { Connector } from "../../Model/Connectors/Connector"; import { Point } from "@devexpress/utils/lib/geometry/point"; export class PasteSelectionInPositionCommand extends PasteSelectionCommandBase { protected getEventPositionOffset(items: DiagramItem[], evtPosition?: Point): Point { const selectionPos = items.reduce((min, i) => { return { x: Math.min(min.x, i instanceof Shape ? i.position.x : i instanceof Connector ? i.getMinX() : Number.MAX_VALUE), y: Math.min(min.y, i instanceof Shape ? i.position.y : i instanceof Connector ? i.getMinY() : Number.MAX_VALUE) }; }, { x: Number.MAX_VALUE, y: Number.MAX_VALUE }); const newSelectionPos = this.control.render.getModelPointByEventPoint(evtPosition.x, evtPosition.y); return new Point( newSelectionPos.x - selectionPos.x, newSelectionPos.y - selectionPos.y ); } }