office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
100 lines • 4.57 kB
JavaScript
import { memoizeFunction } from '../../Utilities';
import { mergeStyleSets } from '../../Styling';
import { getGlobalClassNames } from '../../Styling';
var GlobalClassNames = {
msButton: 'ms-Button',
msButtonIcon: 'ms-Button-icon',
msButtonMenuIcon: 'ms-Button-menuIcon',
msButtonLabel: 'ms-Button-label',
msButtonDescription: 'ms-Button-description',
msButtonScreenReaderText: 'ms-Button-screenReaderText',
msButtonFlexContainer: 'ms-Button-flexContainer',
msButtonTextContainer: 'ms-Button-textContainer'
};
export var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, checked, expanded, isSplit) {
var classNames = getGlobalClassNames(GlobalClassNames, theme || {});
var isExpanded = expanded && !isSplit;
return mergeStyleSets({
root: [
classNames.msButton,
styles.root,
variantClassName,
checked && ['is-checked', styles.rootChecked],
isExpanded && [
'is-expanded',
styles.rootExpanded,
{
selectors: (_a = {},
_a[":hover ." + classNames.msButtonIcon] = styles.iconExpandedHovered,
// menuIcon falls back to rootExpandedHovered to support original behavior
_a[":hover ." + classNames.msButtonMenuIcon] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,
_a[':hover'] = styles.rootExpandedHovered,
_a)
}
],
disabled && ['is-disabled', styles.rootDisabled],
!disabled &&
!isExpanded &&
!checked && {
selectors: (_b = {
':hover': styles.rootHovered
},
_b[":hover ." + classNames.msButtonLabel] = styles.labelHovered,
_b[":hover ." + classNames.msButtonIcon] = styles.iconHovered,
_b[":hover ." + classNames.msButtonDescription] = styles.descriptionHovered,
_b[":hover ." + classNames.msButtonMenuIcon] = styles.menuIconHovered,
_b[':focus'] = styles.rootFocused,
_b[':active'] = styles.rootPressed,
_b[":active ." + classNames.msButtonIcon] = styles.iconPressed,
_b[":active ." + classNames.msButtonDescription] = styles.descriptionPressed,
_b[":active ." + classNames.msButtonMenuIcon] = styles.menuIconPressed,
_b)
},
disabled && checked && [styles.rootCheckedDisabled],
!disabled &&
checked && {
selectors: {
':hover': styles.rootCheckedHovered,
':active': styles.rootCheckedPressed
}
},
className
],
flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],
textContainer: [classNames.msButtonTextContainer, styles.textContainer],
icon: [
classNames.msButtonIcon,
iconClassName,
styles.icon,
isExpanded && styles.iconExpanded,
checked && styles.iconChecked,
disabled && styles.iconDisabled
],
label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],
menuIcon: [
classNames.msButtonMenuIcon,
menuIconClassName,
styles.menuIcon,
checked && styles.menuIconChecked,
disabled && styles.menuIconDisabled,
!disabled &&
!isExpanded &&
!checked && {
selectors: {
':hover': styles.menuIconHovered,
':active': styles.menuIconPressed
}
},
isExpanded && ['is-expanded', styles.menuIconExpanded]
],
description: [
classNames.msButtonDescription,
styles.description,
checked && styles.descriptionChecked,
disabled && styles.descriptionDisabled
],
screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText]
});
var _a, _b;
});
//# sourceMappingURL=BaseButton.classNames.js.map