UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

92 lines 8.28 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createFieldMenuItem = void 0; const react_1 = __importStar(require("react")); const model_react_1 = require("model-react"); const MenuItemFrame_1 = require("../../../components/items/MenuItemFrame"); const MenuItemLayout_1 = require("../../../components/items/MenuItemLayout"); const MenuItemIcon_1 = require("../../../components/items/MenuItemIcon"); const Truncated_1 = require("../../../components/Truncated"); const Box_1 = require("../../../styling/box/Box"); const resetFieldAction_1 = require("./resetFieldAction"); const adjustBindings_1 = require("../adjustBindings"); const getHooked_1 = require("../../../utils/subscribables/getHooked"); const createStandardActionBindings_1 = require("../createStandardActionBindings"); const ShortcutLabel_1 = require("../../../components/items/ShortcutLabel"); const simpleSearchHandler_1 = require("../../../actions/types/search/tracedRecursiveSearch/simpleSearch/simpleSearchHandler"); // TODO: try to fix the types (removing any) /** * Creates a new field menu item * @param data The data to create the menu item with * @returns The created field menu item */ function createFieldMenuItem({ data, ...fieldData }) { var _a; let init; let f; if ("field" in fieldData) { f = fieldData.field; init = (_a = fieldData.init) !== null && _a !== void 0 ? _a : f.get(); } else { f = new model_react_1.Field(fieldData.init); init = fieldData.init; } const field = f; const { valueView, resetable, resetUndoable, actionBindings, ...rest } = data(field); const extraBindings = []; if (resetable) extraBindings.push(resetFieldAction_1.resetFieldAction.createBinding({ default: init, field, undoable: resetUndoable, })); let bindings = createStandardActionBindings_1.createStandardActionBindings({ ...rest, actionBindings: adjustBindings_1.adjustBindings(actionBindings !== null && actionBindings !== void 0 ? actionBindings : [], extraBindings), }, () => item, undefined); const { name, icon, description, shortcut } = rest; function isSerializeable(field) { return "getSerialized" in field; } const item = { get: (hook) => field.get(hook), set: (value) => field.set(value), ...(isSerializeable(field) && { getSerialized: (hook) => field.getSerialized(hook), setSerialized: (value) => field.setSerialized(value), }), view: react_1.memo(({ highlight, ...props }) => { const [h] = model_react_1.useDataHook(); const iconV = getHooked_1.getHooked(icon, h); const descriptionV = getHooked_1.getHooked(description, h); return (react_1.default.createElement(MenuItemFrame_1.MenuItemFrame, Object.assign({}, props), react_1.default.createElement(MenuItemLayout_1.MenuItemLayout, { icon: iconV && react_1.default.createElement(MenuItemIcon_1.MenuItemIcon, { icon: iconV }), name: react_1.default.createElement(Box_1.Box, { font: "header" }, react_1.default.createElement(simpleSearchHandler_1.simpleSearchHandler.Highlighter, { query: highlight, pattern: rest.searchPattern }, name)), value: valueView, shortcut: shortcut && react_1.default.createElement(ShortcutLabel_1.ShortcutLabel, { shortcut: shortcut }), description: descriptionV && (react_1.default.createElement(Truncated_1.Truncated, { title: descriptionV }, react_1.default.createElement(simpleSearchHandler_1.simpleSearchHandler.Highlighter, { query: highlight, pattern: rest.searchPattern }, descriptionV))) }))); }), actionBindings: bindings, }; return item; } exports.createFieldMenuItem = createFieldMenuItem; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRmllbGRNZW51SXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW51cy9pdGVtcy9pbnB1dHMvY3JlYXRlRmllbGRNZW51SXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFrQztBQUdsQyw2Q0FBMEQ7QUFDMUQsMkVBQXNFO0FBQ3RFLDZFQUF3RTtBQUN4RSx5RUFBb0U7QUFDcEUsNkRBQXdEO0FBQ3hELGtEQUE2QztBQUM3Qyx5REFBb0Q7QUFDcEQsc0RBQWlEO0FBQ2pELHNFQUFpRTtBQUVqRSxrRkFBNkU7QUFDN0UsMkVBQXNFO0FBTXRFLDhIQUF5SDtBQUV6SCw0Q0FBNEM7QUFFNUM7Ozs7R0FJRztBQUNILFNBQWdCLG1CQUFtQixDQUF5QixFQUN4RCxJQUFJLEVBQ0osR0FBRyxTQUFTLEVBQ1c7O0lBQ3ZCLElBQUksSUFBbUIsQ0FBQztJQUN4QixJQUFJLENBQTJCLENBQUM7SUFDaEMsSUFBSSxPQUFPLElBQUksU0FBUyxFQUFFO1FBQ3RCLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ3BCLElBQUksU0FBRyxTQUFTLENBQUMsSUFBSSxtQ0FBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDcEM7U0FBTTtRQUNILENBQUMsR0FBRyxJQUFJLG1CQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBUSxDQUFDO1FBQ3JDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO0tBQ3pCO0lBQ0QsTUFBTSxLQUFLLEdBQTZCLENBQUMsQ0FBQztJQUUxQyxNQUFNLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25GLE1BQU0sYUFBYSxHQUFxQixFQUFFLENBQUM7SUFDM0MsSUFBSSxTQUFTO1FBQ1QsYUFB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