Files
goTorrent/goTorrentWebUI/node_modules/material-ui/Button/Button.js

320 lines
12 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.styles = undefined;
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _ref;
// @inheritedComponent ButtonBase
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _withStyles = require('../styles/withStyles');
var _withStyles2 = _interopRequireDefault(_withStyles);
var _colorManipulator = require('../styles/colorManipulator');
var _ButtonBase = require('../ButtonBase');
var _ButtonBase2 = _interopRequireDefault(_ButtonBase);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var babelPluginFlowReactPropTypes_proptype_Node = require('react').babelPluginFlowReactPropTypes_proptype_Node || require('prop-types').any;
var babelPluginFlowReactPropTypes_proptype_ElementType = require('react').babelPluginFlowReactPropTypes_proptype_ElementType || require('prop-types').any;
var styles = exports.styles = function styles(theme) {
return {
root: (0, _extends3.default)({}, theme.typography.button, {
lineHeight: '1.4em', // Improve readability for multiline button.
boxSizing: 'border-box',
minWidth: 88,
minHeight: 36,
padding: theme.spacing.unit + 'px ' + theme.spacing.unit * 2 + 'px',
borderRadius: 2,
color: theme.palette.text.primary,
transition: theme.transitions.create(['background-color', 'box-shadow'], {
duration: theme.transitions.duration.short
}),
'&:hover': {
textDecoration: 'none',
// Reset on mouse devices
backgroundColor: (0, _colorManipulator.fade)(theme.palette.text.primary, 0.12),
'@media (hover: none)': {
backgroundColor: 'transparent'
},
'&$disabled': {
backgroundColor: 'transparent'
}
}
}),
dense: {
padding: theme.spacing.unit - 1 + 'px ' + theme.spacing.unit + 'px',
minWidth: 64,
minHeight: 32,
fontSize: theme.typography.pxToRem(theme.typography.fontSize - 1)
},
label: {
width: '100%',
display: 'inherit',
alignItems: 'inherit',
justifyContent: 'inherit'
},
flatPrimary: {
color: theme.palette.primary[500],
'&:hover': {
backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary[500], 0.12),
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: 'transparent'
}
}
},
flatAccent: {
color: theme.palette.secondary.A200,
'&:hover': {
backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.A200, 0.12),
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: 'transparent'
}
}
},
flatContrast: {
color: theme.palette.getContrastText(theme.palette.primary[500]),
'&:hover': {
backgroundColor: (0, _colorManipulator.fade)(theme.palette.getContrastText(theme.palette.primary[500]), 0.12),
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: 'transparent'
}
}
},
colorInherit: {
color: 'inherit'
},
raised: {
color: theme.palette.getContrastText(theme.palette.grey[300]),
backgroundColor: theme.palette.grey[300],
boxShadow: theme.shadows[2],
'&$keyboardFocused': {
boxShadow: theme.shadows[6]
},
'&:active': {
boxShadow: theme.shadows[8]
},
'&$disabled': {
boxShadow: theme.shadows[0],
backgroundColor: theme.palette.text.divider
},
'&:hover': {
backgroundColor: theme.palette.grey.A100,
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: theme.palette.grey[300]
},
'&$disabled': {
backgroundColor: theme.palette.text.divider,
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: theme.palette.grey[300]
}
}
}
},
keyboardFocused: {},
raisedPrimary: {
color: theme.palette.getContrastText(theme.palette.primary[500]),
backgroundColor: theme.palette.primary[500],
'&:hover': {
backgroundColor: theme.palette.primary[700],
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: theme.palette.primary[500]
}
}
},
raisedAccent: {
color: theme.palette.getContrastText(theme.palette.secondary.A200),
backgroundColor: theme.palette.secondary.A200,
'&:hover': {
backgroundColor: theme.palette.secondary.A400,
// Reset on mouse devices
'@media (hover: none)': {
backgroundColor: theme.palette.secondary.A200
}
}
},
raisedContrast: {
color: theme.palette.getContrastText(theme.palette.primary[500])
},
disabled: {
color: theme.palette.action.disabled
},
fab: {
borderRadius: '50%',
padding: 0,
minWidth: 0,
width: 56,
height: 56,
boxShadow: theme.shadows[6],
'&:active': {
boxShadow: theme.shadows[12]
}
}
};
};
var babelPluginFlowReactPropTypes_proptype_Color = require('prop-types').oneOf(['default', 'inherit', 'primary', 'accent', 'contrast']);
var babelPluginFlowReactPropTypes_proptype_Props = {
/**
* The content of the button.
*/
children: typeof babelPluginFlowReactPropTypes_proptype_Node === 'function' ? babelPluginFlowReactPropTypes_proptype_Node.isRequired ? babelPluginFlowReactPropTypes_proptype_Node.isRequired : babelPluginFlowReactPropTypes_proptype_Node : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_Node).isRequired,
/**
* Useful to extend the style applied to components.
*/
classes: require('prop-types').object,
/**
* @ignore
*/
className: require('prop-types').string,
/**
* The color of the component. It's using the theme palette when that makes sense.
*/
color: require('prop-types').oneOf(['default', 'inherit', 'primary', 'accent', 'contrast']),
/**
* The component used for the root node.
* Either a string to use a DOM element or a component.
* The default value is a `button`.
*/
component: typeof babelPluginFlowReactPropTypes_proptype_ElementType === 'function' ? babelPluginFlowReactPropTypes_proptype_ElementType : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_ElementType),
/**
* Uses a smaller minWidth, ideal for things like card actions.
*/
dense: require('prop-types').bool,
/**
* If `true`, the button will be disabled.
*/
disabled: require('prop-types').bool,
/**
* If `true`, the keyboard focus ripple will be disabled.
* `disableRipple` must also be true.
*/
disableFocusRipple: require('prop-types').bool,
/**
* If `true`, the ripple effect will be disabled.
*/
disableRipple: require('prop-types').bool,
/**
* If `true`, will use floating action button styling.
*/
fab: require('prop-types').bool,
/**
* The URL to link to when the button is clicked.
* If defined, an `a` element will be used as the root node.
*/
href: require('prop-types').string,
/**
* If `true`, the button will use raised styling.
*/
raised: require('prop-types').bool,
/**
* @ignore
*/
type: require('prop-types').string
};
function Button(props) {
var _classNames;
var children = props.children,
classes = props.classes,
classNameProp = props.className,
color = props.color,
dense = props.dense,
disabled = props.disabled,
disableFocusRipple = props.disableFocusRipple,
fab = props.fab,
raised = props.raised,
other = (0, _objectWithoutProperties3.default)(props, ['children', 'classes', 'className', 'color', 'dense', 'disabled', 'disableFocusRipple', 'fab', 'raised']);
var flat = !raised && !fab;
var className = (0, _classnames2.default)((_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.root, true), (0, _defineProperty3.default)(_classNames, classes.raised, raised || fab), (0, _defineProperty3.default)(_classNames, classes.fab, fab), (0, _defineProperty3.default)(_classNames, classes.colorInherit, color === 'inherit'), (0, _defineProperty3.default)(_classNames, classes.flatPrimary, flat && color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.flatAccent, flat && color === 'accent'), (0, _defineProperty3.default)(_classNames, classes.flatContrast, flat && color === 'contrast'), (0, _defineProperty3.default)(_classNames, classes.raisedPrimary, !flat && color === 'primary'), (0, _defineProperty3.default)(_classNames, classes.raisedAccent, !flat && color === 'accent'), (0, _defineProperty3.default)(_classNames, classes.raisedContrast, !flat && color === 'contrast'), (0, _defineProperty3.default)(_classNames, classes.dense, dense), (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp);
return _react2.default.createElement(
_ButtonBase2.default,
(0, _extends3.default)({
className: className,
disabled: disabled,
focusRipple: !disableFocusRipple,
keyboardFocusedClassName: classes.keyboardFocused
}, other),
_react2.default.createElement(
'span',
{ className: classes.label },
children
)
);
}
Button.propTypes = process.env.NODE_ENV !== "production" ? (_ref = {
classes: require('prop-types').object.isRequired,
color: require('prop-types').oneOf(['default', 'inherit', 'primary', 'accent', 'contrast']).isRequired,
dense: require('prop-types').bool.isRequired,
disabled: require('prop-types').bool.isRequired,
fab: require('prop-types').bool.isRequired,
disableFocusRipple: require('prop-types').bool.isRequired,
raised: require('prop-types').bool.isRequired,
disableRipple: require('prop-types').bool.isRequired,
type: require('prop-types').string.isRequired,
children: typeof babelPluginFlowReactPropTypes_proptype_Node === 'function' ? babelPluginFlowReactPropTypes_proptype_Node.isRequired ? babelPluginFlowReactPropTypes_proptype_Node.isRequired : babelPluginFlowReactPropTypes_proptype_Node : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_Node).isRequired
}, (0, _defineProperty3.default)(_ref, 'classes', require('prop-types').object), (0, _defineProperty3.default)(_ref, 'className', require('prop-types').string), (0, _defineProperty3.default)(_ref, 'color', require('prop-types').oneOf(['default', 'inherit', 'primary', 'accent', 'contrast'])), (0, _defineProperty3.default)(_ref, 'component', typeof babelPluginFlowReactPropTypes_proptype_ElementType === 'function' ? babelPluginFlowReactPropTypes_proptype_ElementType : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_ElementType)), (0, _defineProperty3.default)(_ref, 'dense', require('prop-types').bool), (0, _defineProperty3.default)(_ref, 'disabled', require('prop-types').bool), (0, _defineProperty3.default)(_ref, 'disableFocusRipple', require('prop-types').bool), (0, _defineProperty3.default)(_ref, 'disableRipple', require('prop-types').bool), (0, _defineProperty3.default)(_ref, 'fab', require('prop-types').bool), (0, _defineProperty3.default)(_ref, 'href', require('prop-types').string), (0, _defineProperty3.default)(_ref, 'raised', require('prop-types').bool), (0, _defineProperty3.default)(_ref, 'type', require('prop-types').string), _ref) : {};
Button.defaultProps = {
color: 'default',
dense: false,
disabled: false,
fab: false,
disableFocusRipple: false,
raised: false,
disableRipple: false,
type: 'button'
};
exports.default = (0, _withStyles2.default)(styles, { name: 'MuiButton' })(Button);