UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

54 lines 5.36 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.common.back.get())) return true; if (onExit && settings.common.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhbmRhcmRNZW51S2V5SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tZW51cy9tZW51L2ludGVyYWN0aW9uL2tleUhhbmRsZXIvY3JlYXRlU3RhbmRhcmRNZW51S2V5SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2REFBd0Q7QUFDeEQsbUVBQThEO0FBQzlELCtEQUEwRDtBQUMxRCwrRUFBMEU7QUFDMUUsdUVBQWtFO0FBRWxFLDZGQUF3RjtBQUl4Rjs7Ozs7R0FLRztBQUNILFNBQWdCLDRCQUE0QixDQUN4QyxJQUFXLEVBQ1gsRUFDSSxNQUFNLEVBQ04sU0FBUyxFQUNULGtCQUFrQixHQUFHLElBQUksRUFDekIseUJBQXlCLEdBQUcsSUFBSSxNQVVoQyxFQUFFO0lBRU4sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUFZLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDN0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUVwQyxpQkFBaUI7SUFDakIsSUFBSSxFQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFDL0IsT0FBTyxFQUFFLDJCQUEyQixHQUN2QyxHQUFHLGtCQUFrQjtRQUNsQixDQUFDLENBQUMseURBQTJCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUM5QyxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsQ0FBQztJQUMvQyxNQUFNLEVBQ0YsT0FBTyxFQUFFLGlCQUFpQixFQUMxQixPQUFPLEVBQUUseUJBQXlCLEdBQ3JDLEdBQUcsaURBQXVCLENBQUMsSUFBSSxFQUFFO1FBQzlCLHlCQUF5QjtRQUN6QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7S0FDckQsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxvQkFBb0IsR0FBRyw2Q0FBcUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFeEUsc0JBQXNCO0lBQ3RCLE9BQU87UUFDSCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQVcsRUFBRSxFQUFFO1lBQzNCLElBQUksT0FBTSxzQkFBc0IsYUFBdEIsc0JBQXNCLHVCQUF0QixzQkFBc0IsQ0FBRyxDQUFDLEVBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDbkQsSUFBSSxNQUFNLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUM1QyxJQUFJLHVDQUFrQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLElBQUksT0FBTSxvQkFBb0IsYUFBcEIsb0JBQW9CLHVCQUFwQixvQkFBb0IsQ0FBRyxDQUFDLEVBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDakQsSUFBSSx5Q0FBbUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzFFLElBQUksTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDakQsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ1YsMkJBQTJCLGFBQTNCLDJCQUEyQix1QkFBM0IsMkJBQTJCLEdBQUs7WUFDaEMseUJBQXlCLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUM7QUF6REQsb0VBeURDIn0=