matting-editor
Version:
matting-editor
42 lines (32 loc) • 1.1 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var eventBusName = '_eventBus';
var eventsName = '$events';
var getRootConstructor = function getRootConstructor(ctx) {
var Ctor = ctx.constructor;
while (Ctor.super) {
Ctor = Ctor.super;
}
return Ctor;
};
exports.default = {
computed: _defineProperty({}, eventsName, function () {
var vm = this;
while (vm && !vm.hasOwnProperty(eventBusName)) {
vm = vm.$parent;
}
return vm && vm[eventBusName] || this.$createEvents();
}),
methods: {
$createEvents: function $createEvents() {
if (!this.hasOwnProperty(eventBusName)) {
var Events = getRootConstructor(this);
this[eventBusName] = new Events();
}
return this[eventBusName];
}
}
};
;