UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

47 lines 4.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createStandardTextFieldKeyHandler = void 0; const handleHorizontalCursorInput_1 = require("./handleHorizontalCursorInput"); const handleCharacterInput_1 = require("./handleCharacterInput"); const handleRemovalInput_1 = require("./handleRemovalInput"); const handleCursorJumpInput_1 = require("./handleCursorJumpInput"); const handleCopyPasteInput_1 = require("./handleCopyPasteInput"); const baseSettings_1 = require("../../../application/settings/baseSettings/baseSettings"); const setupModifierCatcherHandler_1 = require("./setupModifierCatcherHandler"); const KeyPattern_1 = require("../../../keyHandler/KeyPattern"); const mergeKeyListeners_1 = require("../../../keyHandler/mergeKeyListeners"); /** * Creates a standard text field key handler * @param textField The text field to create the handler for * @param context The context that the handler is used in * @param config Additional configuration * @returns The key handler that can be added to the input handler stack */ function createStandardTextFieldKeyHandler(textField, context, { onExit, extraHandler, } = {}) { const settings = context.settings.get(baseSettings_1.baseSettings).controls; const fieldSettings = settings.field; const shift = new KeyPattern_1.KeyPattern("shift"); // Shift is always a modifier for capital letters // Some normalization of optional config params that can be passed to augment this handler const undoableTextField = "onChange" in textField ? textField : { textField, onChange: cmd => cmd.execute() }; // Create and return the key handler itself return setupModifierCatcherHandler_1.setupModifierCatcherHandler(() => [fieldSettings.expandSelection.get(), shift], mergeKeyListeners_1.mergeKeyListeners(async (e) => { // Handle common text field inputs if (handleCharacterInput_1.handleCharacterInput(e, undoableTextField)) return true; if (handleRemovalInput_1.handleRemovalInput(e, undoableTextField, fieldSettings)) return true; if (handleHorizontalCursorInput_1.handleHorizontalCursorInput(e, undoableTextField, fieldSettings)) return true; if (handleCursorJumpInput_1.handleCursorJumpInput(e, undoableTextField, fieldSettings)) return true; if (await handleCopyPasteInput_1.handleCopyPasteInput(e, undoableTextField, fieldSettings)) return true; // Handle exit if (onExit && settings.common.back.get().matches(e)) { onExit(); return true; } }, extraHandler)); } exports.createStandardTextFieldKeyHandler = createStandardTextFieldKeyHandler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhbmRhcmRUZXh0RmllbGRLZXlIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RleHRGaWVsZHMvaW50ZXJhY3Rpb24va2V5SGFuZGxlci9jcmVhdGVTdGFuZGFyZFRleHRGaWVsZEtleUhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0VBQTBFO0FBQzFFLGlFQUE0RDtBQUM1RCw2REFBd0Q7QUFDeEQsbUVBQThEO0FBQzlELGlFQUE0RDtBQUM1RCwwRkFBcUY7QUFFckYsK0VBQTBFO0FBQzFFLCtEQUEwRDtBQUcxRCw2RUFBd0U7QUFFeEU7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsaUNBQWlDLENBQzdDLFNBQXVDLEVBQ3ZDLE9BQW1CLEVBQ25CLEVBQ0ksTUFBTSxFQUNOLFlBQVksTUFNWixFQUFFO0lBRU4sTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM3RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksdUJBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlEQUFpRDtJQUV4RiwwRkFBMEY7SUFDMUYsTUFBTSxpQkFBaUIsR0FDbkIsVUFBVSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQztJQUV0RiwyQ0FBMkM7SUFDM0MsT0FBTyx5REFBMkIsQ0FDOUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUNsRCxxQ0FBaUIsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7UUFDeEIsa0NBQWtDO1FBQ2xDLElBQUksMkNBQW9CLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDNUQsSUFBSSx1Q0FBa0IsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekUsSUFBSSx5REFBMkIsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLElBQUksNkNBQXFCLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzVFLElBQUksTUFBTSwyQ0FBb0IsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDO1FBRWhCLGNBQWM7UUFDZCxJQUFJLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakQsTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUNuQixDQUFDO0FBQ04sQ0FBQztBQXpDRCw4RUF5Q0MifQ==