mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-13 12:13:10 +00:00
34 lines
973 B
TypeScript
34 lines
973 B
TypeScript
import { dragObjectSymbol } from '../symbols';
|
|
import { IPublicModelDragObject, IPublicModelDragObject as InnerDragObject, IPublicTypeDragNodeDataObject, IPublicTypeNodeSchema } from '@alilc/lowcode-types';
|
|
import { Node } from './node';
|
|
|
|
export class DragObject implements IPublicModelDragObject {
|
|
private readonly [dragObjectSymbol]: InnerDragObject;
|
|
|
|
constructor(dragObject: InnerDragObject) {
|
|
this[dragObjectSymbol] = dragObject;
|
|
}
|
|
|
|
static create(dragObject: InnerDragObject | null): IPublicModelDragObject | null {
|
|
if (!dragObject) {
|
|
return null;
|
|
}
|
|
return new DragObject(dragObject);
|
|
}
|
|
|
|
get type() {
|
|
return this[dragObjectSymbol].type;
|
|
}
|
|
|
|
get nodes() {
|
|
const { nodes } = this[dragObjectSymbol];
|
|
if (!nodes) {
|
|
return null;
|
|
}
|
|
return nodes.map(Node.create);
|
|
}
|
|
|
|
get data(): IPublicTypeNodeSchema | IPublicTypeNodeSchema[] {
|
|
return (this[dragObjectSymbol] as IPublicTypeDragNodeDataObject).data;
|
|
}
|
|
} |