UNPKG

@launchmenu/applet-notes

Version:
86 lines 10.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@launchmenu/core"); const notePatternMatcher_1 = require("./notePatternMatcher"); const model_react_1 = require("model-react"); const NotesSource_1 = require("./dataModel/NotesSource"); const createNoteMenuItem_1 = require("./interface/createNoteMenuItem"); const createNoteCategoryCategory_1 = require("./interface/categories/createNoteCategoryCategory"); const createAddNoteMenuItem_1 = require("./interface/controls/createAddNoteMenuItem"); const createImportNoteMenuItem_1 = require("./interface/controls/createImportNoteMenuItem"); const createEditCategoriesMenuItem_1 = require("./interface/controls/createEditCategoriesMenuItem"); const settings_1 = require("./settings"); const createListCacher_1 = require("./util/createListCacher"); const createAddNoteCategoryMenuItem_1 = require("./interface/categories/controls/createAddNoteCategoryMenuItem"); const createSelectInMenuCallback_1 = require("./util/createSelectInMenuCallback"); const createEditMetadataMenuItem_1 = require("./interface/controls/createEditMetadataMenuItem"); const notesIcon_1 = require("./notesIcon"); exports.default = core_1.declare({ info: settings_1.info, settings: settings_1.settings, init({ settings: initSettings }) { // Setup the notes source together with its item interfaces const notesSource = new model_react_1.DataCacher(h => { const { notesDir, defaults } = initSettings; const path = notesDir.get(h); return new NotesSource_1.NotesSource(`${path}/notes.json`, { color: h => defaults.color.get(h), fontSize: h => defaults.fontSize.get(h), showRichContent: h => defaults.showRichContent.get(h), syntaxMode: h => defaults.syntaxMode.get(h), searchContent: h => defaults.searchContent.get(h), }); }); // Create all categories, note items and items to search for categories const categories = createListCacher_1.createListCacher(h => notesSource.get(h).getAllCategories(h), category => category.ID, category => createNoteCategoryCategory_1.createNoteCategoryCategory(category)); const notesItems = createListCacher_1.createListCacher(h => notesSource.get(h).getAllNotes(h), note => note.ID, note => createNoteMenuItem_1.createNoteMenuItem(note, notesSource.get(), h => categories.get(h).items, initSettings)); // Create some items that can be used to show categories even if they are empty const categoryEmptyItems = createListCacher_1.createListCacher(h => categories.get(h).items, category => category.name, category => core_1.createCategoryDummyItem({ category, })); return { async search(query, hook) { // Only search the notes, not all the controls and categories return { patternMatch: notePatternMatcher_1.notePatternMatcher(query, hook), children: core_1.searchAction.get(notesItems.get(hook).items), }; }, open({ context, onClose }) { // Create some callbacks for when new items are added to this menu (in order to select them) const onCreateNote = createSelectInMenuCallback_1.createSelectInMenuCallback(() => menu, (note, h) => notesItems.get(h).map.get(note.ID)); const onCreateCategory = createSelectInMenuCallback_1.createSelectInMenuCallback(() => menu, (noteCategory, h) => { var _a; return (_a = categories.get(h).map.get(noteCategory.ID)) === null || _a === void 0 ? void 0 : _a.item; }); // Create the menu with its controls const controls = new model_react_1.DataCacher(h => [ createAddNoteMenuItem_1.createAddNoteMenuItem(notesSource.get(h), onCreateNote), ...(context.settings.get(settings_1.settings).inlineCategory.get(h) ? [createEditCategoriesMenuItem_1.createEditCategoriesMenuItem(notesSource.get(h))] : [ createAddNoteCategoryMenuItem_1.createAddNoteCategoryMenuItem(notesSource.get(h), onCreateCategory), ]), ...(context.settings.get(core_1.baseSettings).advancedUsage.get(h) ? [ createImportNoteMenuItem_1.createImportNoteMenuItem(notesSource.get(h), onCreateNote), createEditMetadataMenuItem_1.createEditMetadataMenuItem(notesSource.get(h)), ] : []), ]); const allItems = new model_react_1.DataCacher(h => [ ...notesItems.get(h).items, ...(context.settings.get(settings_1.settings).inlineCategory.get(h) ? [] : categoryEmptyItems.get(h).items), ...controls.get(h), ]); const menu = new core_1.ProxiedMenu(context, h => allItems.get(h)); context.open(new core_1.UILayer(() => ({ icon: notesIcon_1.notesIcon, menu: menu, onClose, }), { path: "Notes" })); }, onDispose: () => notesSource.get().destroy(), }; }, }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBUTBCO0FBQzFCLDZEQUF3RDtBQUN4RCw2Q0FBdUM7QUFDdkMseURBQW9EO0FBQ3BELHVFQUFrRTtBQUNsRSxrR0FBNkY7QUFDN0Ysc0ZBQWlGO0FBQ2pGLDRGQUF1RjtBQUV2RixvR0FBK0Y7QUFDL0YseUNBQTBDO0FBQzFDLDhEQUF5RDtBQUN6RCxpSEFBNEc7QUFDNUcsa0ZBQTZFO0FBRTdFLGdHQUEyRjtBQUMzRiwyQ0FBc0M7QUFFdEMsa0JBQWUsY0FBTyxDQUFDO0lBQ25CLElBQUksRUFBSixlQUFJO0lBQ0osUUFBUSxFQUFSLG1CQUFRO0lBQ1IsSUFBSSxDQUFDLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBQztRQUN6QiwyREFBMkQ7UUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSx3QkFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLEdBQUcsWUFBWSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxJQUFJLHlCQUFXLENBQUMsR0FBRyxJQUFJLGFBQWEsRUFBRTtnQkFDekMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDckQsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVB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