1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2024-11-01 20:14:15 +00:00
webvirtcloud/static/js/novnc/core/util/eventtarget.js

36 lines
896 B
JavaScript
Raw Normal View History

/*
* noVNC: HTML5 VNC client
2019-06-24 11:26:25 +00:00
* Copyright (C) 2018 The noVNC Authors
* Licensed under MPL 2.0 (see LICENSE.txt)
*
* See README.md for usage and integration instructions.
*/
2019-06-24 11:26:25 +00:00
export default class EventTargetMixin {
constructor() {
this._listeners = new Map();
}
2019-06-24 11:26:25 +00:00
addEventListener(type, callback) {
if (!this._listeners.has(type)) {
this._listeners.set(type, new Set());
}
this._listeners.get(type).add(callback);
}
2019-06-24 11:26:25 +00:00
removeEventListener(type, callback) {
if (this._listeners.has(type)) {
this._listeners.get(type).delete(callback);
}
}
2019-06-24 11:26:25 +00:00
dispatchEvent(event) {
if (!this._listeners.has(event.type)) {
return true;
}
this._listeners.get(event.type)
.forEach(callback => callback.call(this, event));
return !event.defaultPrevented;
}
}