@launchmenu/applet-notes
Version:
An applet to make short notes
71 lines • 6.43 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setFontSizeAction = void 0;
const core_1 = require("@launchmenu/core");
const react_1 = __importDefault(require("react"));
const model_react_1 = require("model-react");
const IInherit_1 = require("../../../dataModel/_types/IInherit");
const editStylingFolderHandler_1 = require("../editStylingFolderHandler");
/**
* An action to set the font size of a note
*/
exports.setFontSizeAction = core_1.createContextAction({
name: "Set note font size",
contextItem: {
icon: "edit",
name: "Set font size",
priority: [core_1.Priority.MEDIUM, core_1.Priority.MEDIUM - 20],
content: (react_1.default.createElement(react_1.default.Fragment, null, "Sets the font size 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 defaultFontSize = core_1.groupBy(fields.map(field => field.get()), v => v).reduce((best, { key, values }) => values.length > best.count
? { count: values.length, fontSize: key }
: best, { count: 0, fontSize: undefined }).fontSize || "inherit";
// Execute the select handler
const choiceField = new model_react_1.Field(defaultFontSize);
await core_1.executeAction.execute(context, [
{
actionBindings: [
core_1.promptInputExecuteHandler.createBinding({
field: choiceField,
undoable: false,
serialize: number => number.toString(),
deserialize: text => (text == IInherit_1.inherit ? text : Number(text)),
checkValidity: text => {
if (text == IInherit_1.inherit)
return;
const numberError = core_1.checkTextNumberConstraints(text, {
min: 0,
max: 40,
});
if (numberError && "message" in numberError)
return {
...numberError,
message: `${numberError.message} or inherit`,
};
return numberError;
},
}),
],
},
]);
// Use the result to create a set category command
return new core_1.CompoundCommand({ name: "Set note font size" }, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0Rm9udFNpemVBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW50ZXJmYWNlL2FjdGlvbkhhbmRsZXJzL25vdGVBcHBlYXJhbmNlL3NldEZvbnRTaXplQWN0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FZMEI7QUFDMUIsa0RBQTBCO0FBQzFCLDZDQUFrQztBQUNsQyxpRUFBcUU7QUFDckUsMEVBQXFFO0FBRXJFOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRywwQkFBbUIsQ0FBQztJQUNqRCxJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFdBQVcsRUFBRTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLGVBQWU7UUFDckIsUUFBUSxFQUFFLENBQUMsZUFBUSxDQUFDLE1BQU0sRUFBRSxlQUFRLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEVBQUUsQ0FDTCx5SkFHRyxDQUNOO0tBQ0o7SUFDRCxNQUFNLEVBQUUsbURBQXdCO0lBQ2hDLElBQUksRUFBRSxDQUFDLE1BQW1DLEVBQUUsRUFBRTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFBQyxPQUFPLEVBQWMsRUFBRSxFQUFFO1lBQzdDLGtFQUFrRTtZQUNsRSxNQUFNLGVBQWUsR0FDakIsY0FBTyxDQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ1QsQ0FBQyxNQUFNLENBQ0osQ0FBQyxJQUFJLEVBQUUsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEVBQUUsRUFBRSxDQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLO2dCQUN0QixDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFDO2dCQUN2QyxDQUFDLENBQUMsSUFBSSxFQUNkLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLENBQ2xDLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQztZQUU1Qiw2QkFBNkI7WUFDN0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxtQkFBSyxDQUFvQixlQUFlLENBQUMsQ0FBQztZQUNsRSxNQUFNLG9CQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDakM7b0JBQ0ksY0FBYyxFQUFFO3dCQUNaLGdDQUF5QixDQUFDLGFBQWEsQ0FBb0I7NEJBQ3ZELEtBQUssRUFBRSxXQUFXOzRCQUNsQixRQUFRLEVBQUUsS0FBSzs0QkFDZixTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFOzRCQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxrQkFBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDNUQsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2dDQUNsQixJQUFJLElBQUksSUFBSSxrQkFBTztvQ0FBRSxPQUFPO2dDQUM1QixNQUFNLFdBQVcsR0FBRyxpQ0FBMEIsQ0FBQyxJQUFJLEVBQUU7b0NBQ2pELEdBQUcsRUFBRSxDQUFDO29DQUNOLEdBQUcsRUFBRSxFQUFFO2lDQUNWLENBQUMsQ0FBQztnQ0FDSCxJQUFJLFdBQVcsSUFBSSxTQUFTLElBQUksV0FBVztvQ0FDdkMsT0FBTzt3Q0FDSCxHQUFHLFdBQVc7d0NBQ2QsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDLE9BQU8sYUFBYTtxQ0FDL0MsQ0FBQztnQ0FFTixPQUFPLFdBQVcsQ0FBQzs0QkFDdkIsQ0FBQzt5QkFDSixDQUFDO3FCQUNMO2lCQUNKO2FBQ0osQ0FBQyxDQUFDO1lBRUgsa0RBQWtEO1lBQ2xELE9BQU8sSUFBSSxzQkFBZSxDQUN0QixFQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBQyxFQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxzQkFBZSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUNyRSxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBRUYsT0FBTztZQUNILDJEQUEyRDtZQUMzRCxjQUFjLEVBQUUsQ0FBQywrQkFBd0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakUsK0RBQStEO1lBQy9ELE1BQU0sRUFBRTtnQkFDSixPQUFPO2FBQ1Y7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQyJ9
;