UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

131 lines 5.99 kB
import { getDividerClassNames } from '../Divider/VerticalDivider.classNames'; import { getMenuItemStyles } from './ContextualMenu.cnstyles'; import { mergeStyleSets, getGlobalClassNames } from '../../Styling'; import { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities'; export var getSplitButtonVerticalDividerClassNames = memoizeFunction(function (theme) { return mergeStyleSets(getDividerClassNames(theme), { divider: { height: 16, width: 1 } }); }); var GlobalClassNames = { item: 'ms-ContextualMenu-item', divider: 'ms-ContextualMenu-divider', root: 'ms-ContextualMenu-link', isChecked: 'is-checked', isExpanded: 'is-expanded', isDisabled: 'is-disabled', linkContent: 'ms-ContextualMenu-linkContent', linkContentMenu: 'ms-ContextualMenu-linkContent', icon: 'ms-ContextualMenu-icon', iconColor: 'ms-ContextualMenu-iconColor', checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon', subMenuIcon: 'ms-ContextualMenu-submenuIcon', label: 'ms-ContextualMenu-itemText', secondaryText: 'ms-ContextualMenu-secondaryText' }; // TODO: Audit perf. impact of and potentially remove memoizeFunction. // https://github.com/OfficeDev/office-ui-fabric-react/issues/5534 export var getItemClassNames = memoizeFunction(function (props) { var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className; var styles = getMenuItemStyles(theme); var classNames = getGlobalClassNames(GlobalClassNames, theme); return mergeStyleSets({ item: [classNames.item, styles.item, itemClassName], divider: [classNames.divider, styles.divider, dividerClassName], root: [ classNames.root, styles.root, checked && [classNames.isChecked, styles.rootChecked], isAnchorLink && styles.anchorLink, expanded && [classNames.isExpanded, styles.rootExpanded], disabled && [classNames.isDisabled, styles.rootDisabled], !disabled && !expanded && [ { selectors: (_a = { ':hover': styles.rootHovered, ':active': styles.rootPressed }, _a["." + IsFocusVisibleClassName + " &:focus, ." + IsFocusVisibleClassName + " &:focus:hover"] = styles.rootFocused, _a["." + IsFocusVisibleClassName + " &:hover"] = { background: 'inherit;' }, _a) } ], className ], splitPrimary: [ styles.root, checked && ['is-checked', styles.rootChecked], (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled], !(disabled || primaryDisabled) && !checked && [ { selectors: (_b = { ':hover': styles.rootHovered, ':active': styles.rootPressed }, _b["." + IsFocusVisibleClassName + " &:focus, ." + IsFocusVisibleClassName + " &:focus:hover"] = styles.rootFocused, _b["." + IsFocusVisibleClassName + " &:hover"] = { background: 'inherit;' }, _b) } ] ], splitMenu: [ styles.root, { width: 32 }, expanded && ['is-expanded', styles.rootExpanded], disabled && ['is-disabled', styles.rootDisabled], !disabled && !expanded && [ { selectors: (_c = { ':hover': styles.rootHovered, ':active': styles.rootPressed }, _c["." + IsFocusVisibleClassName + " &:focus, ." + IsFocusVisibleClassName + " &:focus:hover"] = styles.rootFocused, _c["." + IsFocusVisibleClassName + " &:hover"] = { background: 'inherit;' }, _c) } ] ], anchorLink: styles.anchorLink, linkContent: [classNames.linkContent, styles.linkContent], linkContentMenu: [ classNames.linkContentMenu, styles.linkContent, { justifyContent: 'center' } ], icon: [ classNames.icon, knownIcon && styles.iconColor, styles.icon, iconClassName, disabled && [classNames.isDisabled, styles.iconDisabled] ], iconColor: styles.iconColor, checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName], subMenuIcon: [classNames.subMenuIcon, styles.subMenuIcon, subMenuClassName], label: [classNames.label, styles.label], secondaryText: [classNames.secondaryText, styles.secondaryText], splitContainer: [ styles.splitButtonFlexContainer, !disabled && !checked && [ { selectors: (_d = {}, _d["." + IsFocusVisibleClassName + " &:focus, ." + IsFocusVisibleClassName + " &:focus:hover"] = styles.rootFocused, _d) } ] ] }); var _a, _b, _c, _d; }); //# sourceMappingURL=ContextualMenu.classNames.js.map