UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

86 lines 3.77 kB
import * as tslib_1 from "tslib"; import * as React from 'react'; import { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index'; import { BaseComponent, getRTL } from '../../Utilities'; import { Icon } from '../../Icon'; var renderItemIcon = function (props) { var item = props.item, hasIcons = props.hasIcons, classNames = props.classNames; var iconProps = item.iconProps; if (!hasIcons) { return null; } if (item.onRenderIcon) { return item.onRenderIcon(props); } return React.createElement(Icon, tslib_1.__assign({}, iconProps, { className: classNames.icon })); }; var renderCheckMarkIcon = function (_a) { var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames; var isItemChecked = getIsChecked(item); if (onCheckmarkClick) { var onClick = function (e) { return onCheckmarkClick(item, e); }; return React.createElement(Icon, { iconName: isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, onClick: onClick }); } return null; }; var renderItemName = function (_a) { var item = _a.item, classNames = _a.classNames; if (item.text || item.name) { return React.createElement("span", { className: classNames.label }, item.text || item.name); } return null; }; var renderSecondaryText = function (_a) { var item = _a.item, classNames = _a.classNames; if (item.secondaryText) { return React.createElement("span", { className: classNames.secondaryText }, item.secondaryText); } return null; }; var renderSubMenuIcon = function (_a) { var item = _a.item, classNames = _a.classNames; if (hasSubmenu(item)) { return (React.createElement(Icon, tslib_1.__assign({ iconName: getRTL() ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon }))); } return null; }; var ContextualMenuItemBase = /** @class */ (function (_super) { tslib_1.__extends(ContextualMenuItemBase, _super); function ContextualMenuItemBase() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.openSubMenu = function () { var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget; if (getSubmenuTarget) { var submenuTarget = getSubmenuTarget(); if (hasSubmenu(item) && openSubMenu && submenuTarget) { openSubMenu(item, submenuTarget); } } }; _this.dismissSubMenu = function () { var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu; if (hasSubmenu(item) && dismissSubMenu) { dismissSubMenu(); } }; _this.dismissMenu = function (dismissAll) { var dismissMenu = _this.props.dismissMenu; if (dismissMenu) { dismissMenu(undefined /* ev */, dismissAll); } }; return _this; } ContextualMenuItemBase.prototype.render = function () { var _a = this.props, item = _a.item, classNames = _a.classNames; return (React.createElement("div", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderCheckMarkIcon(this.props), renderItemIcon(this.props), renderItemName(this.props), renderSecondaryText(this.props), renderSubMenuIcon(this.props))); }; return ContextualMenuItemBase; }(BaseComponent)); export { ContextualMenuItemBase }; //# sourceMappingURL=ContextualMenuItem.base.js.map