]> git.proxmox.com Git - mirror_novnc.git/blob - core/util/eventtarget.js
Prefer const/let over var
[mirror_novnc.git] / core / util / eventtarget.js
1 /*
2 * noVNC: HTML5 VNC client
3 * Copyright 2017 Pierre Ossman for Cendio AB
4 * Licensed under MPL 2.0 (see LICENSE.txt)
5 *
6 * See README.md for usage and integration instructions.
7 */
8
9 const EventTargetMixin = {
10 _listeners: null,
11
12 addEventListener: function(type, callback) {
13 if (!this._listeners) {
14 this._listeners = new Map();
15 }
16 if (!this._listeners.has(type)) {
17 this._listeners.set(type, new Set());
18 }
19 this._listeners.get(type).add(callback);
20 },
21
22 removeEventListener: function(type, callback) {
23 if (!this._listeners || !this._listeners.has(type)) {
24 return;
25 }
26 this._listeners.get(type).delete(callback);
27 },
28
29 dispatchEvent: function(event) {
30 if (!this._listeners || !this._listeners.has(event.type)) {
31 return true;
32 }
33 this._listeners.get(event.type).forEach(function (callback) {
34 callback.call(this, event);
35 }, this);
36 return !event.defaultPrevented;
37 },
38 };
39
40 export default EventTargetMixin;