UNPKG

toosoon-events

Version:

Project providing services implemented as singleton class instances

51 lines (50 loc) 1.41 kB
import { EventsManager } from './index'; /** * Utility class for creating keyboard events listeners * * @class KeyboardManager * @extends EventsManager<KeyboardEventKey, KeyboardListener> */ class KeyboardManager extends EventsManager { listeners = { down: [], up: [], press: [] }; bind(eventKey) { switch (eventKey) { case 'down': window.addEventListener('keydown', this._onKeyDown); break; case 'up': window.addEventListener('keyup', this._onKeyUp); break; case 'press': window.addEventListener('keypress', this._onKeyPress); break; } } unbind(eventKey) { switch (eventKey) { case 'down': window.removeEventListener('keydown', this._onKeyDown); break; case 'up': window.removeEventListener('keyup', this._onKeyUp); break; case 'press': window.removeEventListener('keypress', this._onKeyPress); break; } } _onKeyDown = (event) => { this.emit('down', event); }; _onKeyUp = (event) => { this.emit('up', event); }; _onKeyPress = (event) => { this.emit('press', event); }; } export default new KeyboardManager();