UNPKG

@launchmenu/applet-notes

Version:
50 lines 4.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createEditCategoriesMenuItem = void 0; const core_1 = require("@launchmenu/core"); const model_react_1 = require("model-react"); const createAddNoteCategoryMenuItem_1 = require("../categories/controls/createAddNoteCategoryMenuItem"); const createNoteCategoryMenuItem_1 = require("../categories/createNoteCategoryMenuItem"); /** * Creates a new menu item that can be used to edit the categories of notes * @param notesSource The notes source to be edited * @returns The item to open the categories editors */ function createEditCategoriesMenuItem(notesSource) { return core_1.createStandardMenuItem({ name: "Edit categories", category: core_1.getControlsCategory(), onExecute: ({ context }) => { const categoryItems = new model_react_1.DataCacher((h, prev) => { var _a; const categories = notesSource.getAllCategories(h); const map = new Map((_a = prev === null || prev === void 0 ? void 0 : prev.map) !== null && _a !== void 0 ? _a : []); return { items: categories.map(category => { let item = map.get(category.ID); if (!item) { item = createNoteCategoryMenuItem_1.createNoteCategoryMenuItem(category); map.set(category.ID, item); } return item; }), map, }; }); const controls = new model_react_1.DataCacher(h => [ createAddNoteCategoryMenuItem_1.createAddNoteCategoryMenuItem(notesSource), ]); const allItems = new model_react_1.DataCacher(h => [ ...categoryItems.get(h).items, ...controls.get(h), ]); // Create and open the menu const menu = new core_1.ProxiedMenu(context, h => allItems.get(h)); context.open(new core_1.UILayer({ menu, })); }, }); } exports.createEditCategoriesMenuItem = createEditCategoriesMenuItem; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRWRpdENhdGVnb3JpZXNNZW51SXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcmZhY2UvY29udHJvbHMvY3JlYXRlRWRpdENhdGVnb3JpZXNNZW51SXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FNMEI7QUFDMUIsNkNBQXVDO0FBRXZDLHdHQUFtRztBQUNuRyx5RkFBb0Y7QUFFcEY7Ozs7R0FJRztBQUNILFNBQWdCLDRCQUE0QixDQUFDLFdBQXdCO0lBQ2pFLE9BQU8sNkJBQXNCLENBQUM7UUFDMUIsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixRQUFRLEVBQUUsMEJBQW1CLEVBQUU7UUFDL0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sYUFBYSxHQUFHLElBQUksd0JBQVUsQ0FHakMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7O2dCQUNYLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLE9BQW9CLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxHQUFHLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxPQUFPO29CQUNILEtBQUssRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUM3QixJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLElBQUksRUFBRTs0QkFDUCxJQUFJLEdBQUcsdURBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQzVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzt5QkFDOUI7d0JBQ0QsT0FBTyxJQUFJLENBQUM7b0JBQ2hCLENBQUMsQ0FBQztvQkFDRixHQUFHO2lCQUNOLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLElBQUksd0JBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQyw2REFBNkIsQ0FBQyxXQUFXLENBQUM7YUFDN0MsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSx3QkFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUM3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3JCLENBQUMsQ0FBQztZQUVILDJCQUEyQjtZQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLGtCQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQ1IsSUFBSSxjQUFPLENBQUM7Z0JBQ1IsSUFBSTthQUNQLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNQLENBQUM7QUF4Q0Qsb0VBd0NDIn0=