UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

29 lines 2.58 kB
"use strict"; 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==