@launchmenu/applet-dictionary
Version:
An applet to find dictionary definitions
61 lines • 5.46 kB
JavaScript
;
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