UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

42 lines 2.63 kB
"use strict"; 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=