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