50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
let Keyboard = window.SimpleKeyboard.default;
|
|
let selectedInput;
|
|
|
|
let keyboard = new Keyboard({
|
|
onChange: input => onChange(input),
|
|
onKeyPress: button => onKeyPress(button)
|
|
});
|
|
|
|
document.querySelectorAll(".input").forEach(input => {
|
|
input.addEventListener("focus", onInputFocus);
|
|
// Optional: Use if you want to track input changes
|
|
// made without simple-keyboard
|
|
input.addEventListener("input", onInputChange);
|
|
});
|
|
|
|
function onInputFocus(event) {
|
|
selectedInput = `#${event.target.id}`;
|
|
|
|
keyboard.setOptions({
|
|
inputName: event.target.id
|
|
});
|
|
}
|
|
|
|
function onInputChange(event) {
|
|
keyboard.setInput(event.target.value, event.target.id);
|
|
}
|
|
|
|
function onChange(input) {
|
|
console.log("Input changed", input);
|
|
document.querySelector(selectedInput || ".input").value = input;
|
|
}
|
|
|
|
function onKeyPress(button) {
|
|
console.log("Button pressed", button);
|
|
|
|
/**
|
|
* Shift functionality
|
|
*/
|
|
if (button === "{lock}" || button === "{shift}") handleShiftButton();
|
|
}
|
|
|
|
function handleShiftButton() {
|
|
let currentLayout = keyboard.options.layoutName;
|
|
let shiftToggle = currentLayout === "default" ? "shift" : "default";
|
|
|
|
keyboard.setOptions({
|
|
layoutName: shiftToggle
|
|
});
|
|
}
|