]>
git.proxmox.com Git - mirror_novnc.git/blob - core/util/eventtarget.js
2 * noVNC: HTML5 VNC client
3 * Copyright 2017 Pierre Ossman for Cendio AB
4 * Licensed under MPL 2.0 (see LICENSE.txt)
6 * See README.md for usage and integration instructions.
9 const EventTargetMixin
= {
12 addEventListener: function(type
, callback
) {
13 if (!this._listeners
) {
14 this._listeners
= new Map();
16 if (!this._listeners
.has(type
)) {
17 this._listeners
.set(type
, new Set());
19 this._listeners
.get(type
).add(callback
);
22 removeEventListener: function(type
, callback
) {
23 if (!this._listeners
|| !this._listeners
.has(type
)) {
26 this._listeners
.get(type
).delete(callback
);
29 dispatchEvent: function(event
) {
30 if (!this._listeners
|| !this._listeners
.has(event
.type
)) {
33 this._listeners
.get(event
.type
).forEach(function (callback
) {
34 callback
.call(this, event
);
36 return !event
.defaultPrevented
;
40 export default EventTargetMixin
;