UNPKG

@launchmenu/applet-notes

Version:
55 lines 4.83 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setColorAction = void 0; const core_1 = require("@launchmenu/core"); const react_1 = __importDefault(require("react")); const model_react_1 = require("model-react"); const editStylingFolderHandler_1 = require("../editStylingFolderHandler"); const inheritableColorInputExecuteHandler_1 = require("../inheritableColorInputExecuteHandler"); /** * An action to set the color of a note */ exports.setColorAction = core_1.createContextAction({ name: "Set note color", contextItem: { icon: "edit", name: "Set color", priority: [core_1.Priority.MEDIUM, core_1.Priority.MEDIUM], content: (react_1.default.createElement(react_1.default.Fragment, null, "Sets whether the color of the note, \"inherit\" can be specified to inherit a default value.")), }, folder: editStylingFolderHandler_1.editStylingFolderHandler, core: (fields) => { const execute = async ({ context }) => { // Obtain the most frequent selection amongst notes as the default const defaultColor = core_1.groupBy(fields.map(field => field.get()), v => v).reduce((best, { key, values }) => values.length > best.count ? { count: values.length, color: key } : best, { count: 0, color: undefined }).color || "inherit"; // Execute the select handler const choiceField = new model_react_1.Field(defaultColor); await core_1.executeAction.execute(context, [ { actionBindings: [ inheritableColorInputExecuteHandler_1.inheritableColorInputExecuteHandler.createBinding({ field: choiceField, undoable: false, }), ], }, ]); // Use the result to create a set category command return new core_1.CompoundCommand({ name: "Set note color" }, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0Q29sb3JBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW50ZXJmYWNlL2FjdGlvbkhhbmRsZXJzL25vdGVBcHBlYXJhbmNlL3NldENvbG9yQWN0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FVMEI7QUFDMUIsa0RBQTBCO0FBQzFCLDZDQUFrQztBQUNsQywwRUFBcUU7QUFDckUsZ0dBQTJGO0FBRTNGOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsMEJBQW1CLENBQUM7SUFDOUMsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixXQUFXLEVBQUU7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxXQUFXO1FBQ2pCLFFBQVEsRUFBRSxDQUFDLGVBQVEsQ0FBQyxNQUFNLEVBQUUsZUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxPQUFPLEVBQUUsQ0FDTCw2SkFHRyxDQUNOO0tBQ0o7SUFDRCxNQUFNLEVBQUUsbURBQXdCO0lBQ2hDLElBQUksRUFBRSxDQUFDLE1BQXdCLEVBQUUsRUFBRTtRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQWMsRUFBRSxFQUFFO1lBQzdDLGtFQUFrRTtZQUNsRSxNQUFNLFlBQVksR0FDZCxjQUFPLENBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUNoQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDVCxDQUFDLE1BQU0sQ0FDSixDQUFDLElBQUksRUFBRSxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUMsRUFBRSxFQUFFLENBQ3BCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUs7Z0JBQ3RCLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLEVBQ2QsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FDL0IsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDO1lBRXpCLDZCQUE2QjtZQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUMsTUFBTSxvQkFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pDO29CQUNJLGNBQWMsRUFBRTt3QkFDWix5RUFBbUMsQ0FBQyxhQUFhLENBQUM7NEJBQzlDLEtBQUssRUFBRSxXQUFXOzRCQUNsQixRQUFRLEVBQUUsS0FBSzt5QkFDbEIsQ0FBQztxQkFDTDtpQkFDSjthQUNKLENBQUMsQ0FBQztZQUVILGtEQUFrRDtZQUNsRCxPQUFPLElBQUksc0JBQWUsQ0FDdEIsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsRUFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksc0JBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FDckUsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUVGLE9BQU87WUFDSCwyREFBMkQ7WUFDM0QsY0FBYyxFQUFFLENBQUMsK0JBQXdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pFLCtEQUErRDtZQUMvRCxNQUFNLEVBQUU7Z0JBQ0osT0FBTzthQUNWO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDLENBQUMifQ==