UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

41 lines 3.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.moveCursorVertical = void 0; const rangeConversion_1 = require("../utils/rangeConversion"); /** * Moves the cursor vertically (up or down, positive is down) * @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 moveCursorVertical(textField, direction = 1, expandSelection) { const selection = textField.getSelection(); const text = textField.get(); // Get a point representation of the index let startPoint = rangeConversion_1.get2dIndex(text, selection.start); let endPoint = rangeConversion_1.get2dIndex(text, selection.end); // If we want to expand the selection, only change the end if (expandSelection) endPoint.row += direction; // Otherwise move both to the end index else { let point; if (selection.start != selection.end) { if (direction > 0 == selection.end > selection.start) point = endPoint; else point = startPoint; } else point = endPoint; point.row += direction; startPoint = endPoint = point; } // Convert back to 1d index representation const startIndex = rangeConversion_1.get1dIndex(text, startPoint); const endIndex = rangeConversion_1.get1dIndex(text, endPoint); // Update the selection textField.setSelection({ start: startIndex, end: endIndex }); } exports.moveCursorVertical = moveCursorVertical; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUN1cnNvclZlcnRpY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RleHRGaWVsZHMvaW50ZXJhY3Rpb24vbW92ZUN1cnNvclZlcnRpY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhEQUFnRTtBQUVoRTs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUM5QixTQUFxQixFQUNyQixZQUFvQixDQUFDLEVBQ3JCLGVBQXlCO0lBRXpCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFN0IsMENBQTBDO0lBQzFDLElBQUksVUFBVSxHQUFHLDRCQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxJQUFJLFFBQVEsR0FBRyw0QkFBVSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFL0MsMERBQTBEO0lBQzFELElBQUksZUFBZTtRQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDO0lBQy9DLHVDQUF1QztTQUNsQztRQUNELElBQUksS0FBb0MsQ0FBQztRQUN6QyxJQUFJLFNBQVMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsS0FBSztnQkFBRSxLQUFLLEdBQUcsUUFBUSxDQUFDOztnQkFDbEUsS0FBSyxHQUFHLFVBQVUsQ0FBQztTQUMzQjs7WUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBRXhCLEtBQUssQ0FBQyxHQUFHLElBQUksU0FBUyxDQUFDO1FBQ3ZCLFVBQVUsR0FBRyxRQUFRLEdBQUcsS0FBSyxDQUFDO0tBQ2pDO0lBRUQsMENBQTBDO0lBQzFDLE1BQU0sVUFBVSxHQUFHLDRCQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sUUFBUSxHQUFHLDRCQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTVDLHVCQUF1QjtJQUN2QixTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBaENELGdEQWdDQyJ9