UNPKG

@launchmenu/applet-notes

Version:
59 lines 5.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NoteContent = exports.noteContentHandler = void 0; const core_1 = require("@launchmenu/core"); const uuid_1 = require("uuid"); const react_1 = __importDefault(require("react")); const ContentSyntaxEditor_1 = require("../content/ContentSyntaxEditor"); const model_react_1 = require("model-react"); const ContentPlainText_1 = require("../content/ContentPlainText"); const ContentMarkdown_1 = require("../content/ContentMarkdown"); const ContentHtml_1 = require("../content/ContentHtml"); /** * A handler that attaches scrollable content to items */ exports.noteContentHandler = core_1.createAction({ name: "scrollable note content handler", parents: [core_1.getContentAction], core: (contents) => ({ result: contents, children: contents.map(({ ID, value: note }) => core_1.getContentAction.createBinding(context => { const content = new core_1.Content(react_1.default.createElement(exports.NoteContent, { note: note })); const handler = core_1.createStandardContentKeyHandler(content, context); const view = react_1.default.createElement(core_1.ContentView, { plain: true, content: content }); return { content, contentView: view, contentHandler: handler }; }, ID)), }), /** * Creates a new action binding and generates an ID for this item identity * @param config The data for the binding, and optionally extra configuration * @param ID The ID for this item * @returns The created binding with the identity key */ createBinding: function (config, ID = uuid_1.v4()) { return core_1.createStandardBinding.call(this, core_1.adjustBindingInput(config, data => ({ ID, value: data }))); }, }); /** * The content component that uses the correct content component type */ const NoteContent = ({ note }) => { const [hook] = model_react_1.useDataHook(); // If rich content is enabled, show the appropriate rich content if (note.getShowRichContent(hook)) { const language = note.getSyntaxMode(hook).toLowerCase(); if (language == "text") return react_1.default.createElement(ContentPlainText_1.ContentPlainText, { note: note }); if (language == "markdown") return react_1.default.createElement(ContentMarkdown_1.ContentMarkdown, { note: note }); if (language == "html") return react_1.default.createElement(ContentHtml_1.ContentHtml, { note: note }); } // Default to a syntax editor if there is no rich content or in the other language return react_1.default.createElement(ContentSyntaxEditor_1.ContentSyntaxEditor, { note: note }); }; exports.NoteContent = NoteContent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZUNvbnRlbnRIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZS9hY3Rpb25IYW5kbGVycy9ub3RlQ29udGVudEhhbmRsZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQWMwQjtBQUMxQiwrQkFBZ0M7QUFDaEMsa0RBQTBCO0FBRTFCLHdFQUFtRTtBQUNuRSw2Q0FBd0M7QUFDeEMsa0VBQTZEO0FBQzdELGdFQUEyRDtBQUMzRCx3REFBbUQ7QUFFbkQ7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLG1CQUFZLENBQUM7SUFDM0MsSUFBSSxFQUFFLGlDQUFpQztJQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBZ0IsQ0FBQztJQUMzQixJQUFJLEVBQUUsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FDekMsdUJBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBTyxDQUFDLDhCQUFDLG1CQUFXLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLENBQUM7WUFDekQsTUFBTSxPQUFPLEdBQUcsc0NBQStCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxHQUFHLDhCQUFDLGtCQUFXLElBQUMsS0FBSyxRQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUksQ0FBQztZQUNyRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBQ2pFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDVDtLQUNKLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILGFBQWEsRUFBRSxVQUNYLE1BQTBDLEVBQzFDLEtBQVksU0FBSSxFQUFFO1FBRWxCLE9BQU8sNEJBQXFCLENBQUMsSUFBSSxDQUM3QixJQUFJLEVBQ0oseUJBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUMxRCxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0ksTUFBTSxXQUFXLEdBQXNCLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFO0lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyx5QkFBVyxFQUFFLENBQUM7SUFFN0IsZ0VBQWdFO0lBQ2hFLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksTUFBTTtZQUFFLE9BQU8sOEJBQUMsbUNBQWdCLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO1FBQ2hFLElBQUksUUFBUSxJQUFJLFVBQVU7WUFBRSxPQUFPLDhCQUFDLGlDQUFlLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO1FBQ25FLElBQUksUUFBUSxJQUFJLE1BQU07WUFBRSxPQUFPLDhCQUFDLHlCQUFXLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO0tBQzlEO0lBRUQsa0ZBQWtGO0lBQ2xGLE9BQU8sOEJBQUMseUNBQW1CLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQWJXLFFBQUEsV0FBVyxlQWF0QiJ9