import Keyboard from '../lib'; import './css/App.css'; /** * simple-keyboard demo */ class App { /** * Instantiates the demo class */ constructor(){ document.addEventListener('DOMContentLoaded', this.onDOMLoaded); /** * Default input name * @type {string} */ this.layoutName = "default"; } /** * Executed when the DOM is ready */ onDOMLoaded = () => { /** * Creates a new simple-keyboard instance */ this.keyboard = new Keyboard({ debug: true, layoutName: this.layoutName, onChange: input => this.onChange(input), onKeyPress: button => this.onKeyPress(button), newLineOnEnter: true, physicalKeyboardHighlight: true }); /** * Adding preview (demo only) */ document.querySelector('.simple-keyboard').insertAdjacentHTML('beforebegin', `
`); document.querySelector('.input').addEventListener('input', (event) => { this.keyboard.setInput(event.target.value); }); } /** * Handles shift functionality */ handleShiftButton = () => { let layoutName = this.layoutName; let shiftToggle = this.layoutName = layoutName === "default" ? "shift" : "default"; this.keyboard.setOptions({ layoutName: shiftToggle }); } /** * Called when simple-keyboard input has changed */ onChange = input => { document.querySelector('.input').value = input; } /** * Called when a simple-keyboard key is pressed */ onKeyPress = button => { console.log("Button pressed", button); /** * Shift functionality */ if(button === "{lock}" || button === "{shift}") this.handleShiftButton(); } } export default App;