12345678910111213141516171819202122232425262728293031323334353637 |
- import {Input} from './input';
- import $ from 'jquery';
- export class DOMInput extends Input{
- constructor (element) {
- super();
- this.el = $(element);
- this.listeners = [];
- this.setupEvents();
- }
- setupEvents () {
- this.el.on('keydown', (e) => {
- const code = e.keyCode || e.which;
- if (code === 13) {
- let text = this.el.val();
- text = text.replace('[\n\r]+', '');
- this.notifyInput(text);
- this.el.val('');
- }
- });
- }
- requestInput (callback) {
- this.listeners.push(callback);
- this.el.focus();
- }
- notifyInput (text) {
- this.listeners.forEach(resolve => {
- resolve(text);
- })
- this.listeners.splice(0, this.listeners.length);
- }
- }
|