@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
54 lines (53 loc) • 1.67 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.ActiveTracker = void 0;
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _node = require("./node");
var _symbols = require("../symbols");
var activeTrackerSymbol = Symbol('activeTracker');
var ActiveTracker = exports.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 = _node.Node.create(innerNode);
var publicActiveTarget = {
node: publicNode,
detail: detail,
instance: instance
};
fn(publicActiveTarget);
});
};
_proto.track = function track(node) {
this[activeTrackerSymbol].track(node[_symbols.nodeSymbol]);
};
return (0, _createClass2["default"])(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 = _node.Node.create(innerNode);
return {
node: publicNode,
detail: detail,
instance: instance
};
}
}]);
}();
;