pragma-views2
Version:
1 lines • 627 B
JavaScript
export class EventEmitter{constructor(){this._events=new Map}dispose(){this._events.clear()}emit(e,t){if(!0===this.hasEvent(e)){this._events.get(e).forEach((e=>e(t)))}}hasEvent(e){return this._events.has(e)}on(e,t){let s=[];!0===this.hasEvent(e)?s=this._events.get(e):this._events.set(e,s),-1==s.indexOf(t)&&s.push(t)}postMessage(e,t,s){Array.from((s||document).querySelectorAll(e)).forEach((e=>{null!=e.onMessage&&e.onMessage.call(e,t)}))}remove(e,t){if(this.hasEvent(e)){const s=this._events.get(e),n=s.indexOf(t);-1!=n&&s.splice(n,1),0===s.length&&this._events.delete(e)}}delete(e){this.hasEvent(e)&&this._events.delete(e)}}