@launchmenu/core
Version:
An environment for visual keyboard controlled applets
47 lines • 4.8 kB
JavaScript
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==
;