UNPKG

react-native-theoplayer

Version:

A THEOplayer video component for react-native.

52 lines (51 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultEventDispatcher = void 0; var _arrayUtil = require("../../utils/arrayUtil"); class DefaultEventDispatcher { _eventListeners = new Map(); addEventListener(type, listener) { if (typeof listener !== 'function') { return; } else if (Array.isArray(type)) { type.forEach(t => this.addSingleEventListener(t, listener)); } else { this.addSingleEventListener(type, listener); } } addSingleEventListener(type, listener) { if (!this._eventListeners.has(type)) { this._eventListeners.set(type, [listener]); } else { this._eventListeners.get(type)?.push(listener); } } clearEventListeners() { this._eventListeners.clear(); } dispatchEvent = event => { const listeners = (this._eventListeners.get(event.type) ?? []).slice(); for (const listener of listeners) { listener.call(this, event); } }; removeEventListener(type, listener) { if (typeof listener !== 'function') { return; } else if (Array.isArray(type)) { type.forEach(t => this.removeSingleEventListener(t, listener)); } else { this.removeSingleEventListener(type, listener); } } removeSingleEventListener(type, listener) { const listeners = this._eventListeners.get(type); if (listeners) { (0, _arrayUtil.arrayRemoveElement)(listeners, listener); } } } exports.DefaultEventDispatcher = DefaultEventDispatcher; //# sourceMappingURL=DefaultEventDispatcher.js.map