@launchmenu/applet-notes
Version:
An applet to make short notes
55 lines • 6.79 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createColorableMenuItem = void 0;
const react_1 = __importDefault(require("react"));
const core_1 = require("@launchmenu/core");
const model_react_1 = require("model-react");
const react_2 = require("react");
const color_1 = __importDefault(require("color"));
/**
* Creates a new colorable menu item
* @param data The data to create a menu item with
* @returns The menu item
*/
function createColorableMenuItem({ icon, color, rightAlignDescription, asCategory, ...bindingData }) {
const { name, description, shortcut } = bindingData;
const bindings = asCategory
? core_1.createCategoryMenuItemActionBindings(bindingData, asCategory)
: core_1.createStandardActionBindings(bindingData, () => item);
const item = {
view: react_2.memo(({ highlight, ...props }) => {
const { isCursor, isSelected } = props;
const [h] = model_react_1.useDataHook();
const iconV = core_1.getHooked(icon, h);
const descriptionV = core_1.getHooked(description, h);
const nameV = core_1.getHooked(name, h);
let colorV = core_1.getHooked(color, h);
if ((colorV === null || colorV === void 0 ? void 0 : colorV.toLowerCase()) == "#fff0")
colorV = undefined; // Special exception to allow string based color skipping
const colorData = new color_1.default(colorV);
const executableCategory = asCategory && core_1.isItemSelectable(props.item);
return (react_1.default.createElement(core_1.MenuItemFrame, Object.assign({ outerProps: executableCategory ? { marginTop: "medium" } : undefined }, props, { colors: colorV
? {
container: !isCursor ? { background: colorV } : undefined,
selection: !isSelected
? { background: colorV }
: undefined,
border: colorData.isDark()
? colorData.lighten(0.1).toString()
: colorData.darken(0.1).toString(),
}
: undefined }),
react_1.default.createElement(core_1.MenuItemLayout, { icon: iconV && react_1.default.createElement(core_1.MenuItemIcon, { icon: iconV }), name: react_1.default.createElement(core_1.Box, { font: "header", css: { fontWeight: asCategory ? "bold" : undefined } },
react_1.default.createElement(core_1.simpleSearchHandler.Highlighter, { query: highlight, pattern: bindingData.searchPattern }, nameV)), shortcut: shortcut && react_1.default.createElement(core_1.ShortcutLabel, { shortcut: shortcut }), description: descriptionV && (react_1.default.createElement(core_1.Box, { textAlign: rightAlignDescription ? "right" : "inherit" },
react_1.default.createElement(core_1.Truncated, { title: descriptionV },
react_1.default.createElement(core_1.simpleSearchHandler.Highlighter, { query: highlight, pattern: bindingData.searchPattern }, descriptionV)))) })));
}),
actionBindings: bindings,
};
return item;
}
exports.createColorableMenuItem = createColorableMenuItem;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ29sb3JhYmxlTWVudUl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlL2NyZWF0ZUNvbG9yYWJsZU1lbnVJdGVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsMkNBYzBCO0FBQzFCLDZDQUF3QztBQUN4QyxpQ0FBMkI7QUFDM0Isa0RBQTBCO0FBRzFCOzs7O0dBSUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxFQUNwQyxJQUFJLEVBQ0osS0FBSyxFQUNMLHFCQUFxQixFQUNyQixVQUFVLEVBQ1YsR0FBRyxXQUFXLEVBQ087SUFDckIsTUFBTSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFDLEdBQUcsV0FBVyxDQUFDO0lBQ2xELE1BQU0sUUFBUSxHQUFHLFVBQVU7UUFDdkIsQ0FBQyxDQUFDLDJDQUFvQyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDL0QsQ0FBQyxDQUFDLG1DQUE0QixDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU1RCxNQUFNLElBQUksR0FBYztRQUNwQixJQUFJLEVBQUUsWUFBSSxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFDLEdBQUcsS0FBSyxDQUFDO1lBRXJDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyx5QkFBVyxFQUFFLENBQUM7WUFDMUIsTUFBTSxLQUFLLEdBQUcsZ0JBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxZQUFZLEdBQUcsZ0JBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0MsTUFBTSxLQUFLLEdBQUcsZ0JBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDakMsSUFBSSxNQUFN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