UNPKG

@launchmenu/applet-notes

Version:
71 lines 6.43 kB
"use strict"; 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