@launchmenu/core
Version:
An environment for visual keyboard controlled applets
48 lines • 4.61 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
* @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
;