@launchmenu/core
Version:
An environment for visual keyboard controlled applets
29 lines • 2.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createKeyPatternFieldKeyHandler = void 0;
const KeyPattern_1 = require("../../../../../keyHandler/KeyPattern");
/**
* Creates a text field key handler that captures the keys as a key pattern
* @param textField The text field to create the handler for
* @param onExit The code to execute when the text field is exited
* @returns The key handler that can be added to the input handler stack
*/
function createKeyPatternFieldKeyHandler(textField, onExit) {
// Keep track of whether anything was pressed so far, in order to not trigger close on release of a key that this handler didn't register (for instance enter to open this handler)
let pressedAnything = false;
return e => {
if (e.type == "up" && e.held.length == 0) {
if (pressedAnything) {
onExit === null || onExit === void 0 ? void 0 : onExit();
pressedAnything = false;
}
}
else if (e.type == "down") {
pressedAnything = true;
textField.set(KeyPattern_1.KeyPattern.sortKeys([...e.held, e.key].map(({ name }) => name)).join(KeyPattern_1.KeyPattern.keySeparator));
}
return true;
};
}
exports.createKeyPatternFieldKeyHandler = createKeyPatternFieldKeyHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlS2V5UGF0dGVybkZpZWxkS2V5SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tZW51cy9pdGVtcy9pbnB1dHMvaGFuZGxlcnMva2V5UGF0dGVybi9jcmVhdGVLZXlQYXR0ZXJuRmllbGRLZXlIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFnRTtBQUloRTs7Ozs7R0FLRztBQUNILFNBQWdCLCtCQUErQixDQUMzQyxTQUFxQixFQUNyQixNQUFtQjtJQUVuQixtTEFBbUw7SUFDbkwsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxDQUFDLEVBQUU7UUFDUCxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLGVBQWUsRUFBRTtnQkFDakIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxHQUFLO2dCQUNYLGVBQWUsR0FBRyxLQUFLLENBQUM7YUFDM0I7U0FDSjthQUFNLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDekIsZUFBZSxHQUFHLElBQUksQ0FBQztZQUN2QixTQUFTLENBQUMsR0FBRyxDQUNULHVCQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUQsdUJBQVUsQ0FBQyxZQUFZLENBQzFCLENBQ0osQ0FBQztTQUNMO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQXRCRCwwRUFzQkMifQ==
;