@eccenca/gui-elements
Version:
GUI elements based on other libraries, usable in React application, written in Typescript.
23 lines • 1.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EditorAppearanceConfigMenu = EditorAppearanceConfigMenu;
const react_1 = __importDefault(require("react"));
const components_1 = require("../../../components");
/**
* Returns a simple context menu that provides switches to control the editor appearance.
*/
function EditorAppearanceConfigMenu({ config, configLocked = {}, configPropertyTranslate = (s) => s, setConfig, contextMenuProps, }) {
var _a;
return (react_1.default.createElement(components_1.ContextMenu, Object.assign({ togglerElement: "item-settings" }, contextMenuProps, { disabled: (_a = contextMenuProps === null || contextMenuProps === void 0 ? void 0 : contextMenuProps.disabled) !== null && _a !== void 0 ? _a : Object.values(config).length ===
Object.values(configLocked).filter((value) => {
return typeof value !== "undefined";
}).length }), Object.entries(config).map(([key, value]) => {
return (react_1.default.createElement(components_1.MenuItem, { key: key, roleStructure: "listoption", selected: value, text: configPropertyTranslate(key) || key, disabled: typeof configLocked[key] !== "undefined", onClick: () => {
setConfig(Object.assign(Object.assign({}, config), { [key]: !value }));
} }));
})));
}
//# sourceMappingURL=EditorAppearanceConfigMenu.js.map