UNPKG

react-native-theoplayer

Version:

A THEOplayer video component for react-native.

59 lines (58 loc) 1.58 kB
"use strict"; export function arrayRemoveElement(array, element) { const index = array.indexOf(element); if (index === -1) { return false; } arrayRemoveAt(array, index); return true; } export function arrayRemoveAt(array, index) { array.splice(index, 1); } export class DefaultWebEventDispatcher { _eventListeners = new Map(); addEventListener(types, listener) { if (typeof types === 'string') { this.addSingleEventListener_(types, listener); } else { types.forEach(type => { this.addSingleEventListener_(type, listener); }); } } addSingleEventListener_(type, listener) { if (!this._eventListeners.has(type)) { // @ts-ignore this._eventListeners.set(type, [listener]); } else { // @ts-ignore 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(types, listener) { if (typeof types === 'string') { this.removeSingleEventListener(types, listener); } else { types.forEach(type => { this.removeSingleEventListener(type, listener); }); } } removeSingleEventListener(type, listener) { const listeners = this._eventListeners.get(type); if (listeners) { arrayRemoveElement(listeners, listener); } } } //# sourceMappingURL=DefaultWebEventDispatcher.js.map