UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

48 lines 4.61 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 * @returns The key handler that can be added to the input handler stack */ function createStandardTextFieldKeyHandler(textField, context, { onExit, extraHandler, onEditCommand, } = {}) { 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 = onEditCommand ? { textField, onChange: onEditCommand } : textField; // Create and return the key handler itself return setupModifierCatcherHandler_1.setupModifierCatcherHandler(() => [fieldSettings.expandSelection.get(), shift], mergeKeyListeners_1.mergeKeyListeners(e => { // Handle common text field inputs if (handleCharacterInput_1.handleCharacterInput(e, textField)) return true; if (handleRemovalInput_1.handleRemovalInput(e, undoableTextField, fieldSettings)) return true; if (handleHorizontalCursorInput_1.handleHorizontalCursorInput(e, textField, fieldSettings)) return true; if (handleCursorJumpInput_1.handleCursorJumpInput(e, textField, fieldSettings)) return true; if (handleCopyPasteInput_1.handleCopyPasteInput(e, textField, fieldSettings)) return true; // Handle exit if (onExit && settings.back.get().matches(e)) { onExit(); return true; } }, extraHandler)); } exports.createStandardTextFieldKeyHandler = createStandardTextFieldKeyHandler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVGV4dEZpZWxkS2V5SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXh0RmllbGRzL2ludGVyYWN0aW9uL2tleUhhbmRsZXIvY3JlYXRlVGV4dEZpZWxkS2V5SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwrRUFBMEU7QUFDMUUsaUVBQTREO0FBQzVELDZEQUF3RDtBQUN4RCxtRUFBOEQ7QUFDOUQsaUVBQTREO0FBQzVELDBGQUFxRjtBQUVyRiwrRUFBMEU7QUFDMUUsK0RBQTBEO0FBRzFELDZFQUF3RTtBQUV4RTs7Ozs7R0FLRztBQUNILFNBQWdCLGlDQUFpQyxDQUM3QyxTQUFxQixFQUNyQixPQUFtQixFQUNuQixFQUNJLE1BQU0sRUFDTixZQUFZLEVBQ1osYUFBYSxNQVFiLEVBQUU7SUFFTixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywyQkFBWSxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQzdELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSx1QkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaURBQWlEO0lBRXhGLDBGQUEwRjtJQUMxRixNQUFNLGlCQUFpQixHQUFvQixhQUFhO1FBQ3BELENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFDO1FBQ3RDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFaEIsMkNBQTJDO0lBQzNDLE9BQU8seURBQTJCLENBQzlCLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFDbEQscUNBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDbEIsa0NBQWtDO1FBQ2xDLElBQUksMkNBQW9CLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3BELElBQUksdUNBQWtCLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pFLElBQUkseURBQTJCLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxRSxJQUFJLDZDQUFxQixDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEUsSUFBSSwyQ0FBb0IsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRW5FLGNBQWM7UUFDZCxJQUFJLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQyxNQUFNLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQ25CLENBQUM7QUFDTixDQUFDO0FBM0NELDhFQTJDQyJ9