@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
49 lines • 1.45 kB
JavaScript
import _createClass from "@babel/runtime/helpers/createClass";
import { Node as ShellNode } from './node';
import { nodeSymbol } from '../symbols';
var activeTrackerSymbol = Symbol('activeTracker');
export var ActiveTracker = /*#__PURE__*/function () {
function ActiveTracker(innerTracker) {
this[activeTrackerSymbol] = void 0;
this[activeTrackerSymbol] = innerTracker;
}
var _proto = ActiveTracker.prototype;
_proto.onChange = function onChange(fn) {
if (!fn) {
return function () {};
}
return this[activeTrackerSymbol].onChange(function (t) {
var innerNode = t.node,
detail = t.detail,
instance = t.instance;
var publicNode = ShellNode.create(innerNode);
var publicActiveTarget = {
node: publicNode,
detail: detail,
instance: instance
};
fn(publicActiveTarget);
});
};
_proto.track = function track(node) {
this[activeTrackerSymbol].track(node[nodeSymbol]);
};
return _createClass(ActiveTracker, [{
key: "target",
get: function get() {
var _target = this[activeTrackerSymbol]._target;
if (!_target) {
return null;
}
var innerNode = _target.node,
detail = _target.detail,
instance = _target.instance;
var publicNode = ShellNode.create(innerNode);
return {
node: publicNode,
detail: detail,
instance: instance
};
}
}]);
}();