@launchmenu/applet-notes
Version:
An applet to make short notes
59 lines • 5.42 kB
JavaScript
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=
;