You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
610 B

"use strict";
exports.__esModule = true;
exports.BindEventMixin = BindEventMixin;
var _event = require("../utils/dom/event");
/**
* Bind event when mounted or activated
*/
var uid = 0;
function BindEventMixin(handler) {
var key = "binded_" + uid++;
function bind() {
if (!this[key]) {
handler.call(this, _event.on, true);
this[key] = true;
}
}
function unbind() {
if (this[key]) {
handler.call(this, _event.off, false);
this[key] = false;
}
}
return {
mounted: bind,
activated: bind,
deactivated: unbind,
beforeDestroy: unbind
};
}