UNPKG

react-native-theoplayer

Version:

A THEOplayer video component for react-native.

66 lines (65 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultWebEventDispatcher = void 0; exports.arrayRemoveAt = arrayRemoveAt; exports.arrayRemoveElement = arrayRemoveElement; function arrayRemoveElement(array, element) { const index = array.indexOf(element); if (index === -1) { return false; } arrayRemoveAt(array, index); return true; } function arrayRemoveAt(array, index) { array.splice(index, 1); } 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); } } } exports.DefaultWebEventDispatcher = DefaultWebEventDispatcher; //# sourceMappingURL=DefaultWebEventDispatcher.js.map