mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-07 10:57:19 +00:00
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import { LocateEvent as InnerLocateEvent } from '@alilc/lowcode-designer';
|
|
import { locateEventSymbol } from './symbols';
|
|
import DragObject from './drag-object';
|
|
import { IPublicModelLocateEvent, IPublicModelDragObject } from '@alilc/lowcode-types';
|
|
|
|
export default class LocateEvent implements IPublicModelLocateEvent {
|
|
private readonly [locateEventSymbol]: InnerLocateEvent;
|
|
|
|
constructor(locateEvent: InnerLocateEvent) {
|
|
this[locateEventSymbol] = locateEvent;
|
|
}
|
|
|
|
static create(locateEvent: InnerLocateEvent): IPublicModelLocateEvent | null {
|
|
if (!locateEvent) {
|
|
return null;
|
|
}
|
|
return new LocateEvent(locateEvent);
|
|
}
|
|
|
|
get type(): string {
|
|
return this[locateEventSymbol].type;
|
|
}
|
|
|
|
get globalX(): number {
|
|
return this[locateEventSymbol].globalX;
|
|
}
|
|
|
|
get globalY(): number {
|
|
return this[locateEventSymbol].globalY;
|
|
}
|
|
|
|
get originalEvent(): MouseEvent | DragEvent {
|
|
return this[locateEventSymbol].originalEvent;
|
|
}
|
|
|
|
get target(): Element | null | undefined {
|
|
return this[locateEventSymbol].target;
|
|
}
|
|
|
|
get canvasX(): number | undefined {
|
|
return this[locateEventSymbol].canvasX;
|
|
}
|
|
|
|
get canvasY(): number | undefined {
|
|
return this[locateEventSymbol].canvasY;
|
|
}
|
|
|
|
get dragObject(): IPublicModelDragObject | null {
|
|
return DragObject.create(this[locateEventSymbol].dragObject);
|
|
}
|
|
} |