UNPKG

@launchmenu/applet-dictionary

Version:
61 lines 5.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefinitionsAction = void 0; const core_1 = require("@launchmenu/core"); const filterTags_1 = require("../../sanitize/filterTags"); const getExamplesAction_1 = require("./getExamplesAction"); const uuid_1 = require("uuid"); const model_react_1 = require("model-react"); /** An action to show the user all definitions */ exports.getDefinitionsAction = core_1.createContextAction({ name: "Definitions", contextItem: actionBindings => ({ priority: core_1.Priority.MEDIUM, item: core_1.createFolderMenuItem({ name: "Definitions", children: [], actionBindings }), }), core: (definitions) => { const getCategorizedDefinitions = () => core_1.groupBy(definitions, "category").map(({ key, values }) => ({ category: key, definitions: values, })); const layerContentData = { ID: uuid_1.v4(), contentView: { close: true }, }; // Retrieves the items from the definitions const items = new model_react_1.DataCacher(() => getCategorizedDefinitions().map(({ category, definitions }) => core_1.createContextFolderMenuItem({ name: category, layerContentData, children: definitions.map(({ definition, examples }) => { const def = filterTags_1.filterTags(definition); return core_1.createStandardMenuItem({ name: def, onExecute: () => { }, actionBindings: [ ...examples.map(example => getExamplesAction_1.getExamplesAction.createBinding(example)), core_1.copyExitPasteHandler.createBinding(def), core_1.copyAction.createBinding(core_1.copyTextHandler.createBinding(def)), ], }); }), actionBindings: definitions.flatMap(({ definition, examples }) => [ ...examples.map(example => getExamplesAction_1.getExamplesAction.createBinding(example)), core_1.copyAction.createBinding(core_1.copyTextHandler.createBinding(filterTags_1.filterTags(definition))), ]), }))); return { result: { /** Retrieves all the definitions grouped by category */ get: getCategorizedDefinitions, }, actionBindings: [ core_1.openMenuExecuteHandler.createBinding({ items: () => items.get(), closeOnExecute: true, pathName: "Definitions", }), ], }; }, }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RGVmaW5pdGlvbnNBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaXRlbXMvYWN0aW9ucy9nZXREZWZpbml0aW9uc0FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FZMEI7QUFDMUIsMERBQXFEO0FBQ3JELDJEQUFzRDtBQUV0RCwrQkFBZ0M7QUFDaEMsNkNBQXVDO0FBRXZDLGlEQUFpRDtBQUNwQyxRQUFBLG9CQUFvQixHQUFHLDBCQUFtQixDQUFDO0lBQ3BELElBQUksRUFBRSxhQUFhO0lBQ25CLFdBQVcsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsUUFBUSxFQUFFLGVBQVEsQ0FBQyxNQUFNO1FBQ3pCLElBQUksRUFBRSwyQkFBb0IsQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUMsQ0FBQztLQUNsRixDQUFDO0lBQ0YsSUFBSSxFQUFFLENBQUMsV0FBOEIsRUFBRSxFQUFFO1FBQ3JDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxFQUFFLENBQ25DLGNBQU8sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckQsUUFBUSxFQUFFLEdBQUc7WUFDYixXQUFXLEVBQUUsTUFBNkM7U0FDN0QsQ0FBQyxDQUFDLENBQUM7UUFDUixNQUFNLGdCQUFnQixHQUF3QjtZQUMxQyxFQUFFLEVBQUUsU0FBSSxFQUFFO1lBQ1YsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQztTQUM3QixDQUFDO1FBRUYsMkNBQTJDO1FBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksd0JBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FDOUIseUJBQXlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsRUFBRSxFQUFFLENBQ3hELGtDQUEyQixDQUFDO1lBQ3hCLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCO1lBQ2hCLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLEVBQUUsRUFBRTtnQkFDakQsTUFBTSxHQUFHLEdBQUcsdUJBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDbkMsT0FBTyw2QkFBc0IsQ0FBQztvQkFDMUIsSUFBSSxFQUFFLEdBQUc7b0JBQ1QsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7b0JBQ25CLGNBQWMsRUFBRTt3QkFDWixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDdEIscUNBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUMzQzt3QkFDRCwyQkFBb0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO3dCQUN2QyxpQkFBVSxDQUFDLGFBQWEsQ0FDcEIsc0JBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQ3JDO3FCQUNKO2lCQUNKLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztZQUNGLGNBQWMsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM1RCxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDdEIscUNBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUMzQztnQkFDRCxpQkFBVSxDQUFDLGFBQWEsQ0FDcEIsc0JBQWUsQ0FBQyxhQUFhLENBQUMsdUJBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUN4RDthQUNKLENBQUM7U0FDTCxDQUFDLENBQ0wsQ0FDSixDQUFDO1FBRUYsT0FBTztZQUNILE1BQU0sRUFBRTtnQkFDSix3REFBd0Q7Z0JBQ3hELEdBQUcsRUFBRSx5QkFBeUI7YUFDakM7WUFDRCxjQUFjLEVBQUU7Z0JBQ1osNkJBQXNCLENBQUMsYUFBYSxDQUFDO29CQUNqQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtvQkFDeEIsY0FBYyxFQUFFLElBQUk7b0JBQ3BCLFFBQVEsRUFBRSxhQUFhO2lCQUMxQixDQUFDO2FBQ0w7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQyJ9