@launchmenu/core
Version:
An environment for visual keyboard controlled applets
92 lines • 8.28 kB
JavaScript
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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
;