UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

54 lines 5.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createStandardMenuKeyHandler = void 0; const handleExecuteInput_1 = require("./handleExecuteInput"); const setupMoveInputHandler_1 = require("./setupMoveInputHandler"); const handleDeselectInput_1 = require("./handleDeselectInput"); const setupItemKeyListenerHandler_1 = require("./setupItemKeyListenerHandler"); const setupContextMenuHandler_1 = require("./setupContextMenuHandler"); const baseSettings_1 = require("../../../../application/settings/baseSettings/baseSettings"); /** * Creates a standard menu key handler * @param menu The menu to create the handler for * @param config Any additional optional data for the key handler configuration * @returns The key handler that can be added to the UILayer */ function createStandardMenuKeyHandler(menu, { onExit, onExecute, useItemKeyHandlers = true, useContextItemKeyHandlers = true, } = {}) { const context = menu.getContext(); const settings = context.settings.get(baseSettings_1.baseSettings).controls; const fieldSettings = settings.menu; // Setup handlers let { handler: handleItemKeyListeners, destroy: destroyItemListenersHandler, } = useItemKeyHandlers ? setupItemKeyListenerHandler_1.setupItemKeyListenerHandler(menu, onExecute) : { handler: undefined, destroy: undefined }; const { handler: handleContextMenu, destroy: destroyContextMenuHandler, } = setupContextMenuHandler_1.setupContextMenuHandler(menu, { useContextItemKeyHandlers, pattern: () => fieldSettings.openContextMenu.get(), }); const handleCursorMovement = setupMoveInputHandler_1.setupMoveInputHandler(menu, fieldSettings); // Return the listener return { handler: async (e) => { if (await (handleItemKeyListeners === null || handleItemKeyListeners === void 0 ? void 0 : handleItemKeyListeners(e))) return true; if (await handleContextMenu(e)) return true; if (handleExecuteInput_1.handleExecuteInput(e, menu, onExecute, fieldSettings.execute.get())) return true; if (await (handleCursorMovement === null || handleCursorMovement === void 0 ? void 0 : handleCursorMovement(e))) return true; if (handleDeselectInput_1.handleDeselectInput(e, menu, settings.back.get())) return true; if (onExit && settings.back.get().matches(e)) { onExit(); return true; } }, destroy: () => { destroyItemListenersHandler === null || destroyItemListenersHandler === void 0 ? void 0 : destroyItemListenersHandler(); destroyContextMenuHandler(); }, }; } exports.createStandardMenuKeyHandler = createStandardMenuKeyHandler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTWVudUtleUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbWVudXMvbWVudS9pbnRlcmFjdGlvbi9rZXlIYW5kbGVyL2NyZWF0ZU1lbnVLZXlIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZEQUF3RDtBQUN4RCxtRUFBOEQ7QUFDOUQsK0RBQTBEO0FBQzFELCtFQUEwRTtBQUMxRSx1RUFBa0U7QUFFbEUsNkZBQXdGO0FBSXhGOzs7OztHQUtHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQ3hDLElBQVcsRUFDWCxFQUNJLE1BQU0sRUFDTixTQUFTLEVBQ1Qsa0JBQWtCLEdBQUcsSUFBSSxFQUN6Qix5QkFBeUIsR0FBRyxJQUFJLE1BVWhDLEVBQUU7SUFFTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM3RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBRXBDLGlCQUFpQjtJQUNqQixJQUFJLEVBQ0EsT0FBTyxFQUFFLHNCQUFzQixFQUMvQixPQUFPLEVBQUUsMkJBQTJCLEdBQ3ZDLEdBQUcsa0JBQWtCO1FBQ2xCLENBQUMsQ0FBQyx5REFBMkIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxDQUFDO0lBQy9DLE1BQU0sRUFDRixPQUFPLEVBQUUsaUJBQWlCLEVBQzFCLE9BQU8sRUFBRSx5QkFBeUIsR0FDckMsR0FBRyxpREFBdUIsQ0FBQyxJQUFJLEVBQUU7UUFDOUIseUJBQXlCO1FBQ3pCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRTtLQUNyRCxDQUFDLENBQUM7SUFDSCxNQUFNLG9CQUFvQixHQUFHLDZDQUFxQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV4RSxzQkFBc0I7SUFDdEIsT0FBTztRQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBVyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxPQUFNLHNCQUFzQixhQUF0QixzQkFBc0IsdUJBQXRCLHNCQUFzQixDQUFHLENBQUMsRUFBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNuRCxJQUFJLE1BQU0saUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzVDLElBQUksdUNBQWtCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxJQUFJLENBQUM7WUFDaEIsSUFBSSxPQUFNLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFHLENBQUMsRUFBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNqRCxJQUFJLHlDQUFtQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNuRSxJQUFJLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDMUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ1YsMkJBQTJCLGFBQTNCLDJCQUEyQix1QkFBM0IsMkJBQTJCLEdBQUs7WUFDaEMseUJBQXlCLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUM7QUF6REQsb0VBeURDIn0=