UNPKG

@alilc/lowcode-shell

Version:

Shell Layer for AliLowCodeEngine

124 lines (116 loc) 3.72 kB
"use strict"; 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; } }]); }();