jiro-ui
Version:
A Mithril.js UI library based from construct-ui
21 lines (20 loc) • 1.29 kB
JavaScript
import { __assign, __rest } from "tslib";
import m from 'mithril';
import classnames from 'classnames';
import { Classes } from '../../_shared';
import { Button } from '../button';
import { PopoverMenu } from '../popover-menu';
import { Icons } from '../icon';
var MenuItem = /** @class */ (function () {
function MenuItem() {
}
MenuItem.prototype.view = function (_a) {
var attrs = _a.attrs;
var className = attrs.class, submenu = attrs.submenu, closeOnSubmenuClick = attrs.closeOnSubmenuClick, popoverMenuAttrs = attrs.popoverMenuAttrs, buttonAttrs = __rest(attrs, ["class", "submenu", "closeOnSubmenuClick", "popoverMenuAttrs"]);
var classes = classnames(Classes.MENU_ITEM, Classes.BASIC, className);
var button = m(Button, __assign(__assign({ align: 'left', compact: true, iconRight: submenu ? Icons.CHEVRON_RIGHT : undefined }, buttonAttrs), { class: classes }));
return submenu ? m(PopoverMenu, __assign(__assign({ hasArrow: false, interactionType: 'hover', openOnTriggerFocus: true, position: 'right-start' }, popoverMenuAttrs), { closeOnContentClick: closeOnSubmenuClick, addToStack: false, content: submenu, inline: true, restoreFocus: false, trigger: button })) : button;
};
return MenuItem;
}());
export { MenuItem };