@eccenca/gui-elements
Version:
GUI elements based on other libraries, usable in React application, written in Typescript.
36 lines • 2.5 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ContextMenu = void 0;
const react_1 = __importDefault(require("react"));
const constants_1 = require("../../configuration/constants");
const IconButton_1 = __importDefault(require("../Icon/IconButton"));
const Menu_1 = __importDefault(require("../Menu/Menu"));
const ContextOverlay_1 = __importDefault(require("./ContextOverlay"));
/**
* Element displays menu items after toggler is clicked.
*/
const ContextMenu = (_a) => {
var { children, className = "", togglerElement = "item-moremenu", togglerText = "Show more options", contextOverlayProps, disabled, togglerLarge = false,
/* FIXME: The Tooltip component can interfere with the opened menu, since it is implemented via portal and may cover the menu,
so by default we use the title attribute instead of Tooltip. */
tooltipAsTitle = true, preventPlaceholder = false } = _a, restProps = __rest(_a, ["children", "className", "togglerElement", "togglerText", "contextOverlayProps", "disabled", "togglerLarge", "tooltipAsTitle", "preventPlaceholder"]);
const toggleButton = typeof togglerElement === "string" ? (react_1.default.createElement(IconButton_1.default, { tooltipAsTitle: tooltipAsTitle, name: [togglerElement], text: togglerText, large: togglerLarge, disabled: !!disabled, "data-test-id": restProps["data-test-id"] })) : togglerElement;
return (react_1.default.createElement(ContextOverlay_1.default, Object.assign({}, restProps, contextOverlayProps, { className: `${constants_1.CLASSPREFIX}-contextmenu ` + className, content: react_1.default.createElement(Menu_1.default, null, children), disabled: !!disabled, usePlaceholder: !preventPlaceholder }), toggleButton));
};
exports.ContextMenu = ContextMenu;
exports.default = exports.ContextMenu;
//# sourceMappingURL=ContextMenu.js.map