]> git.proxmox.com Git - mirror_novnc.git/blame - core/util/eventtarget.js
Update copyright to 2019 for modified files
[mirror_novnc.git] / core / util / eventtarget.js
CommitLineData
e89eef94
PO
1/*
2 * noVNC: HTML5 VNC client
412d9306 3 * Copyright (C) 2019 The noVNC Authors
e89eef94
PO
4 * Licensed under MPL 2.0 (see LICENSE.txt)
5 *
6 * See README.md for usage and integration instructions.
7 */
8
0e4808bf
JD
9export default class EventTargetMixin {
10 constructor() {
11ef5354 11 this._listeners = new Map();
0e4808bf 12 }
e89eef94 13
7b536961 14 addEventListener(type, callback) {
7b536961
PO
15 if (!this._listeners.has(type)) {
16 this._listeners.set(type, new Set());
17 }
18 this._listeners.get(type).add(callback);
19 }
e89eef94 20
7b536961 21 removeEventListener(type, callback) {
11ef5354
JD
22 if (this._listeners.has(type)) {
23 this._listeners.get(type).delete(callback);
7b536961 24 }
7b536961 25 }
e89eef94 26
7b536961 27 dispatchEvent(event) {
11ef5354 28 if (!this._listeners.has(event.type)) {
7b536961
PO
29 return true;
30 }
11ef5354 31 this._listeners.get(event.type)
667f3cc2 32 .forEach(callback => callback.call(this, event));
7b536961
PO
33 return !event.defaultPrevented;
34 }
0e4808bf 35}