UNPKG

@launchmenu/applet-notes

Version:
59 lines 5.42 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setSyntaxModeAction = void 0; const core_1 = require("@launchmenu/core"); const react_1 = __importDefault(require("react")); const model_react_1 = require("model-react"); const IHighlightLanguage_1 = require("../../../dataModel/_types/IHighlightLanguage"); const IInherit_1 = require("../../../dataModel/_types/IInherit"); const editStylingFolderHandler_1 = require("../editStylingFolderHandler"); /** * An action to set the syntax mode for a note */ exports.setSyntaxModeAction = core_1.createContextAction({ name: "Set note syntax mode", contextItem: { icon: "edit", name: "Set syntax mode", priority: [core_1.Priority.MEDIUM, core_1.Priority.MEDIUM - 5], content: (react_1.default.createElement(react_1.default.Fragment, null, "Sets the syntax mode of the note, \"inherit\" can be specified to inherit a default value.")), }, folder: editStylingFolderHandler_1.editStylingFolderHandler, core: (fields) => { const execute = async ({ context }) => { var _a; // Obtain the most frequent selection amongst notes as the default const defaultRichContent = (_a = core_1.groupBy(fields.map(field => field.get()), v => v).reduce((best, { key, values }) => values.length > best.count ? { count: values.length, language: key } : best, { count: 0, language: undefined }).language) !== null && _a !== void 0 ? _a : "inherit"; // Execute the select handler const choiceField = new model_react_1.Field(defaultRichContent); await core_1.executeAction.execute(context, [ { actionBindings: [ core_1.promptSelectExecuteHandler.createBinding({ field: choiceField, undoable: false, options: [...IHighlightLanguage_1.highlightLanguages, IInherit_1.inherit], createOptionView: v => core_1.createStandardMenuItem({ name: v.toString() }), }), ], }, ]); // Use the result to create a set category command return new core_1.CompoundCommand({ name: "Set syntax mode" }, fields.map(field => new core_1.SetFieldCommand(field, choiceField.get()))); }; return { // Return the bindings for executing the action in the menu actionBindings: [core_1.sequentialExecuteHandler.createBinding(execute)], // As well as some result for programmatic access for extension result: { execute, }, }; }, }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0U3ludGF4TW9kZUFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbnRlcmZhY2UvYWN0aW9uSGFuZGxlcnMvbm90ZUFwcGVhcmFuY2Uvc2V0U3ludGF4TW9kZUFjdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBWTBCO0FBQzFCLGtEQUEwQjtBQUMxQiw2Q0FBa0M7QUFDbEMscUZBR3NEO0FBQ3RELGlFQUFxRTtBQUNyRSwwRUFBcUU7QUFFckU7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLDBCQUFtQixDQUFDO0lBQ25ELElBQUksRUFBRSxzQkFBc0I7SUFDNUIsV0FBVyxFQUFFO1FBQ1QsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDLGVBQVEsQ0FBQyxNQUFNLEVBQUUsZUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEQsT0FBTyxFQUFFLENBQ0wsMkpBR0csQ0FDTjtLQUNKO0lBQ0QsTUFBTSxFQUFFLG1EQUF3QjtJQUNoQyxJQUFJLEVBQUUsQ0FBQyxNQUErQyxFQUFFLEVBQUU7UUFDdEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFjLEVBQUUsRUFBRTs7WUFDN0Msa0VBQWtFO1lBQ2xFLE1BQU0sa0JBQWtCLFNBQ3BCLGNBQU8sQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQ2hDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNULENBQUMsTUFBTSxDQUNKLENBQUMsSUFBSSxFQUFFLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxFQUFFLEVBQUUsQ0FDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSztnQkFDdEIsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBQztnQkFDdkMsQ0FBQyxDQUFDLElBQUksRUFDZCxFQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxDQUNsQyxDQUFDLFFBQVEsbUNBQUksU0FBUyxDQUFDO1lBRTVCLDZCQUE2QjtZQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLG1CQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNsRCxNQUFNLG9CQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDakM7b0JBQ0ksY0FBYyxFQUFFO3dCQUNaLGlDQUEwQixDQUFDLGFBQWEsQ0FBQzs0QkFDckMsS0FBSyxFQUFFLFdBQVc7NEJBQ2xCLFFBQVEsRUFBRSxLQUFLOzRCQUNmLE9BQU8sRUFBRSxDQUFDLEdBQUcsdUNBQWtCLEVBQUUsa0JBQU8sQ0FBQzs0QkFDekMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FDbEIsNkJBQXNCLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLENBQUM7eUJBQ25ELENBQUM7cUJBQ0w7aUJBQ0o7YUFDSixDQUFDLENBQUM7WUFFSCxrREFBa0Q7WUFDbEQsT0FBTyxJQUFJLHNCQUFlLENBQ3RCLEVBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFDLEVBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLHNCQUFlLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQ3JFLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0gsMkRBQTJEO1lBQzNELGNBQWMsRUFBRSxDQUFDLCtCQUF3QixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRSwrREFBK0Q7WUFDL0QsTUFBTSxFQUFFO2dCQUNKLE9BQU87YUFDVjtTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDIn0=