UNPKG

@launchmenu/applet-notes

Version:
187 lines 11.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NoteCategory = void 0; const model_react_1 = require("model-react"); const createCustomSearchPatternMatcher_1 = require("./tools/createCustomSearchPatternMatcher"); const ifNotInherited_1 = require("./tools/ifNotInherited"); class NoteCategory { /** * Creates a new note category instance * @param ID The ID of the note * @param dataSource The data source of the note category * @param update A function to update the category's data * @param notesSource All registered notes, including ones not part of this category */ constructor(ID, dataSource, update, notesSource) { /** The cached notes of this category */ this.notes = new model_react_1.DataCacher(h => this.notesSource.getAllNotes(h).filter(note => { var _a; return ((_a = note.getCategory(h)) === null || _a === void 0 ? void 0 : _a.ID) == this.ID; })); /** The search pattern matcher */ this.searchPatternMatcher = createCustomSearchPatternMatcher_1.createCustomSearchPatternMatcher(hook => this.getSearchPattern(hook), h => this.getName(h)); this.ID = ID; this.dataSource = dataSource; this.update = update; this.notesSource = notesSource; } // Getters /** * Retrieves the name of the category * @param hook The hook to subscribe to changes * @returns The category's name */ getName(hook) { return this.dataSource(hook).name; } /** * Retrieves the notes source that this category belongs to * @returns The notes source */ getSource() { return this.notesSource; } /** * Retrieves all notes in this category * @param hook The hook to subscribe to changes * @returns The notes in the category */ getNotes(hook) { return this.notes.get(hook); } /** * Retrieves the search pattern as a text string * @param hook The hook to subscribe to changes * @returns The search pattern if any */ getSearchPattern(hook) { return this.dataSource(hook).searchPattern || undefined; } /** * Retrieves the search pattern matcher for this category * @returns The search pattern matcher if any * * @remarks The matcher is never replaced, it only changes internally, so there is no need to subscribe to changes */ getSearchPatternMatcher() { return this.searchPatternMatcher; } /** * Retrieves the data of this category * @param hook The hook to subscribe to changes * @returns All the data of the category */ getData(hook) { return this.dataSource(hook); } // All appearance getters /** * Retrieves the default color for notes in this category * @param hook The hook to subscribe to changes * @returns The color of the note */ getColor(hook) { var _a; return ((_a = ifNotInherited_1.ifNotInherited(this.dataSource(hook).color)) !== null && _a !== void 0 ? _a : this.notesSource.defaults.color(hook)); } /** * Retrieves the default font size for notes in this category * @param hook The hook to subscribe to changes * @returns The font size of the note */ getFontSize(hook) { var _a; return ((_a = ifNotInherited_1.ifNotInherited(this.dataSource(hook).fontSize)) !== null && _a !== void 0 ? _a : this.notesSource.defaults.fontSize(hook)); } /** * Retrieves the default syntax mode for notes in this category * @param hook The hook to subscribe to changes * @returns The syntax mode of the note */ getSyntaxMode(hook) { var _a; return ((_a = ifNotInherited_1.ifNotInherited(this.dataSource(hook).syntaxMode)) !== null && _a !== void 0 ? _a : this.notesSource.defaults.syntaxMode(hook)); } /** * Retrieves the default value of whether to show rich content for notes in this category * @param hook The hook to subscribe to changes * @returns Whether to show rich content */ getShowRichContent(hook) { var _a; return ((_a = ifNotInherited_1.ifNotInherited(this.dataSource(hook).showRichContent)) !== null && _a !== void 0 ? _a : this.notesSource.defaults.showRichContent(hook)); } /** * Retrieves the default value of whether to search the content for notes in this category * @param hook The hook to subscribe to changes * @returns Whether to search content */ getSearchContent(hook) { var _a; return ((_a = ifNotInherited_1.ifNotInherited(this.dataSource(hook).searchContent)) !== null && _a !== void 0 ? _a : this.notesSource.defaults.searchContent(hook)); } // Setters /** * Updates the category's name * @param name The new name of the category */ setName(name) { this.update(this.ID, { ...this.dataSource(), name }); } /** * Adds a note to this category * @param note The note to be added */ addNote(note) { note.setCategory(this); } /** * Deletes the category */ delete() { this.update(this.ID); } /** * Sets the search pattern as a text string * @param pattern The search pattern for this category * @returns The search pattern if any */ setSearchPattern(pattern) { this.update(this.ID, { ...this.dataSource(), searchPattern: pattern }); } // All appearance setters /** * Sets the default color for notes in this category * @param color The new color of the category */ setColor(color) { this.update(this.ID, { ...this.dataSource(), color }); } /** * Sets the default font size for notes in this category * @param fontSize The new font size of the category */ setFontSize(fontSize) { this.update(this.ID, { ...this.dataSource(), fontSize }); } /** * Sets the default syntax mode for notes in this category * @param mode The new syntax mode of the category */ setSyntaxMode(mode) { this.update(this.ID, { ...this.dataSource(), syntaxMode: mode }); } /** * Sets the default for whether to show rich content for notes in this category * @param showRichContent Whether to show rich content for this category */ setShowRichContent(showRichContent) { this.update(this.ID, { ...this.dataSource(), showRichContent }); } /** * Sets the default for whether to search content for notes in this category * @param searchContent Whether to search content for this category */ setSearchContent(searchContent) { this.update(this.ID, { ...this.dataSource(), searchContent }); } } exports.NoteCategory = NoteCategory; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90ZUNhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFNb2RlbC9Ob3RlQ2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQWtFO0FBQ2xFLCtGQUEwRjtBQUMxRiwyREFBc0Q7QUFPdEQsTUFBYSxZQUFZO0lBUXJCOzs7Ozs7T0FNRztJQUNILFlBQ0ksRUFBVSxFQUNWLFVBQWlELEVBQ2pELE1BQTBELEVBQzFELFdBQXdCO1FBMEI1Qix3Q0FBd0M7UUFDOUIsVUFBSyxHQUFHLElBQUksd0JBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBQyxPQUFBLE9BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsMENBQUUsRUFBRSxLQUFJLElBQUksQ0FBQyxFQUFFLENBQUEsRUFBQSxDQUFDLENBQ3JGLENBQUM7UUFvQkYsaUNBQWlDO1FBQ3ZCLHlCQUFvQixHQUFHLG1FQUFnQyxDQUM3RCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUN2QixDQUFDO1FBbkRFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVU7SUFDVjs7OztPQUlHO0lBQ0ksT0FBTyxDQUFDLElBQWdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJ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