UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

39 lines 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jumpCursor = void 0; const rangeConversion_1 = require("../utils/rangeConversion"); /** * Jumps the cursor to the top, bottom, start of line or end of line * @param textField The text field ot move the cursor for * @param direction The movement direction * @param expandSelection Whether to alter the current text selection */ function jumpCursor(textField, direction, expandSelection) { const selection = textField.getSelection(); const text = textField.get(); // Get a point representation of the index const lines = rangeConversion_1.getTextLines(text, false); let endPoint = rangeConversion_1.get2dIndex(text, selection.end); // Move the end point if (direction.dy) { if (direction.dy > 0) endPoint.row = lines.length - 1; else endPoint.row = 0; } if (direction.dx) { if (direction.dx > 0) endPoint.column = lines[endPoint.row].length; else endPoint.column = 0; } // Convert back to 1d index representation const endIndex = rangeConversion_1.get1dIndex(text, endPoint); // Update the selection textField.setSelection({ start: expandSelection ? selection.start : endIndex, end: endIndex, }); } exports.jumpCursor = jumpCursor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianVtcEN1cnNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXh0RmllbGRzL2ludGVyYWN0aW9uL2p1bXBDdXJzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUN0QixTQUFxQixFQUNyQixTQUFxQyxFQUNyQyxlQUF5QjtJQUV6QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRTdCLDBDQUEwQztJQUMxQyxNQUFNLEtBQUssR0FBRyw4QkFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxJQUFJLFFBQVEsR0FBRyw0QkFBVSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFL0MscUJBQXFCO0lBQ3JCLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRTtRQUNkLElBQUksU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDO1lBQUUsUUFBUSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs7WUFDakQsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDekI7SUFDRCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEVBQUU7UUFDZCxJQUFJLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztZQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7O1lBQzlELFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzVCO0lBRUQsMENBQTBDO0lBQzFDLE1BQU0sUUFBUSxHQUFHLDRCQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTVDLHVCQUF1QjtJQUN2QixTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ25CLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDbkQsR0FBRyxFQUFFLFFBQVE7S0FDaEIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQTlCRCxnQ0E4QkMifQ==