@oat-sa/tao-item-runner-qti
Version:
TAO QTI Item Runner modules
50 lines (43 loc) • 1.14 kB
JavaScript
import _ from 'lodash';
//@todo : complete with namespace managements
function EventMgr() {
var events = {};
this.get = function (event) {
if (event && events[event]) {
return _.clone(events[event]);
} else {
return [];
}
};
this.on = function (event, callback) {
var tokens = event.split('.');
if (tokens[0]) {
var name = tokens.shift();
events[name] = events[name] || [];
events[name].push({
ns: tokens,
callback: callback
});
}
};
this.off = function (event) {
if (event && events[event]) {
events[event] = [];
}
};
this.trigger = function (event, data) {
if (events[event]) {
_.forEach(events[event], function (e) {
//@todo check ns:
e.callback.apply(
{
type: event,
ns: []
},
data
);
});
}
};
}
export default EventMgr;