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