@launchmenu/core
Version:
An environment for visual keyboard controlled applets
54 lines • 5.36 kB
JavaScript
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=
;