mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-27 08:35:22 +00:00
40 lines
1 KiB
JavaScript
Executable file
40 lines
1 KiB
JavaScript
Executable file
/*
|
|
* noVNC: HTML5 VNC client
|
|
* Copyright 2017 Pierre Ossman for Cendio AB
|
|
* Licensed under MPL 2.0 (see LICENSE.txt)
|
|
*
|
|
* See README.md for usage and integration instructions.
|
|
*/
|
|
|
|
var EventTargetMixin = {
|
|
_listeners: null,
|
|
|
|
addEventListener: function(type, callback) {
|
|
if (!this._listeners) {
|
|
this._listeners = new Map();
|
|
}
|
|
if (!this._listeners.has(type)) {
|
|
this._listeners.set(type, new Set());
|
|
}
|
|
this._listeners.get(type).add(callback);
|
|
},
|
|
|
|
removeEventListener: function(type, callback) {
|
|
if (!this._listeners || !this._listeners.has(type)) {
|
|
return;
|
|
}
|
|
this._listeners.get(type).delete(callback);
|
|
},
|
|
|
|
dispatchEvent: function(event) {
|
|
if (!this._listeners || !this._listeners.has(event.type)) {
|
|
return true;
|
|
}
|
|
this._listeners.get(event.type).forEach(function (callback) {
|
|
callback.call(this, event);
|
|
}, this);
|
|
return !event.defaultPrevented;
|
|
},
|
|
};
|
|
|
|
export default EventTargetMixin;
|