@launchmenu/core
Version:
An environment for visual keyboard controlled applets
42 lines • 2.63 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.moveCursor = void 0;
const isItemSelectable_1 = require("../../items/isItemSelectable");
/**
* Moves the cursor in the menu up or down
* @param menu The menu to move the cursor in
* @param up Whether to move up or down
* @returns The new cursor of the menu
*/
function moveCursor(menu, up) {
const items = menu.getItems();
if (items.length == 0)
return;
const cursor = menu.getCursor();
let index = cursor ? items.indexOf(cursor) : -1;
// Find the new item index
let newCursor;
for (let i = 0; i < items.length; i++) {
// Move the index
if (up)
index--;
else
index++;
// Wrap the items
if (index < 0)
index = items.length - 1;
if (index >= items.length)
index = 0;
// Make sure this is a valid cursor
newCursor = items[index];
if (isItemSelectable_1.isItemSelectable(newCursor))
break;
}
// Set the cursor
if (!newCursor)
return;
menu.setCursor(newCursor);
return newCursor;
}
exports.moveCursor = moveCursor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUN1cnNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW51cy9tZW51L2ludGVyYWN0aW9uL21vdmVDdXJzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUVBQThEO0FBRTlEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLElBQVcsRUFBRSxFQUFXO0lBQy9DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztRQUFFLE9BQU87SUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEQsMEJBQTBCO0lBQzFCLElBQUksU0FBZ0MsQ0FBQztJQUNyQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxpQkFBaUI7UUFDakIsSUFBSSxFQUFFO1lBQUUsS0FBSyxFQUFFLENBQUM7O1lBQ1gsS0FBSyxFQUFFLENBQUM7UUFFYixpQkFBaUI7UUFDakIsSUFBSSxLQUFLLEdBQUcsQ0FBQztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTTtZQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFckMsbUNBQW1DO1FBQ25DLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxtQ0FBZ0IsQ0FBQyxTQUFTLENBQUM7WUFBRSxNQUFNO0tBQzFDO0lBRUQsaUJBQWlCO0lBQ2pCLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTztJQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUExQkQsZ0NBMEJDIn0=
;