UNPKG

@launchmenu/applet-notes

Version:
55 lines 6.79 kB
"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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