@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
124 lines (116 loc) • 3.72 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.innerDragonSymbol = exports.Dragon = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _symbols = require("../symbols");
var _locateEvent = _interopRequireDefault(require("./locate-event"));
var _dragObject = require("./drag-object");
var _lowcodeEditorCore = require("@alilc/lowcode-editor-core");
var innerDragonSymbol = exports.innerDragonSymbol = Symbol('innerDragonSymbol');
var Dragon = exports.Dragon = /*#__PURE__*/function () {
function Dragon(innerDragon, workspaceMode) {
this.workspaceMode = workspaceMode;
this[innerDragonSymbol] = void 0;
this[innerDragonSymbol] = innerDragon;
}
Dragon.create = function create(dragon, workspaceMode) {
if (!dragon) {
return null;
}
return new Dragon(dragon, workspaceMode);
}
/**
* is dragging or not
*/;
var _proto = Dragon.prototype;
/**
* 绑定 dragstart 事件
* @param func
* @returns
*/
_proto.onDragstart = function onDragstart(func) {
return this[_symbols.dragonSymbol].onDragstart(function (e) {
return func(_locateEvent["default"].create(e));
});
}
/**
* 绑定 drag 事件
* @param func
* @returns
*/;
_proto.onDrag = function onDrag(func) {
return this[_symbols.dragonSymbol].onDrag(function (e) {
return func(_locateEvent["default"].create(e));
});
}
/**
* 绑定 dragend 事件
* @param func
* @returns
*/;
_proto.onDragend = function onDragend(func) {
return this[_symbols.dragonSymbol].onDragend(function (o) {
var dragObject = _dragObject.DragObject.create(o.dragObject);
var copy = o.copy;
return func({
dragObject: dragObject,
copy: copy
});
});
}
/**
* 设置拖拽监听的区域 shell,以及自定义拖拽转换函数 boost
* @param shell 拖拽监听的区域
* @param boost 拖拽转换函数
*/;
_proto.from = function from(shell, boost) {
return this[_symbols.dragonSymbol].from(shell, boost);
}
/**
* boost your dragObject for dragging(flying) 发射拖拽对象
*
* @param dragObject 拖拽对象
* @param boostEvent 拖拽初始时事件
*/;
_proto.boost = function boost(dragObject, boostEvent, fromRglNode) {
return this[_symbols.dragonSymbol].boost((0, _extends2["default"])({}, dragObject, {
nodes: dragObject.nodes.map(function (node) {
return node[_symbols.nodeSymbol];
})
}), boostEvent, fromRglNode === null || fromRglNode === void 0 ? void 0 : fromRglNode[_symbols.nodeSymbol]);
}
/**
* 添加投放感应区
*/;
_proto.addSensor = function addSensor(sensor) {
return this[_symbols.dragonSymbol].addSensor(sensor);
}
/**
* 移除投放感应
*/;
_proto.removeSensor = function removeSensor(sensor) {
return this[_symbols.dragonSymbol].removeSensor(sensor);
};
return (0, _createClass2["default"])(Dragon, [{
key: _symbols.dragonSymbol,
get: function get() {
if (this.workspaceMode) {
return this[innerDragonSymbol];
}
var workspace = _lowcodeEditorCore.globalContext.get('workspace');
var editor = _lowcodeEditorCore.globalContext.get('editor');
if (workspace.isActive) {
editor = workspace.window.editor;
}
var designer = editor.get('designer');
return designer.dragon;
}
}, {
key: "dragging",
get: function get() {
return this[_symbols.dragonSymbol].dragging;
}
}]);
}();
;