Files
pathfinder/public/js/v2.0.1/app/lib/eventHandler.js
2020-04-11 16:37:38 +02:00

29 lines
826 B
JavaScript

define([], () => {
'use strict';
let EventHandler = class EventHandler {
constructor(){
this._listeners = new Map();
}
addEventListener(target, type, listener, options){
this._listeners.set(type, listener);
target.addEventListener(this.constructor.eventParts(type).event, listener, options);
}
removeEventListener(target, type){
target.removeEventListener(this.constructor.eventParts(type).event, this._listeners.get(type));
this._listeners.delete(type);
}
static eventParts(type){
return type.split('.').reduce((acc, val, i) => {
acc[i ? 'namespace' : 'event'] = val;
return acc;
}, {});
}
};
return new EventHandler();
});