UNPKG

material-ui-cordova

Version:

React components that implement Google's Material Design.

220 lines (176 loc) 7.56 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.styles = undefined; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); 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); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var babelPluginFlowReactPropTypes_proptype_Node = require('react').babelPluginFlowReactPropTypes_proptype_Node || require('prop-types').any; // weak var styles = exports.styles = function styles(theme) { return { root: { position: 'absolute', left: 0, right: 0, height: 48, background: 'rgba(0, 0, 0, 0.4)', display: 'flex', alignItems: 'center', fontFamily: theme.typography.fontFamily }, rootBottom: { bottom: 0 }, rootTop: { top: 0 }, rootWithSubtitle: { height: 68 }, titleWrap: { flexGrow: 1, marginLeft: theme.mixins.gutters({}).paddingLeft, marginRight: theme.mixins.gutters({}).paddingRight, color: 'white', overflow: 'hidden' }, titleWrapActionLeft: { marginLeft: 0 }, titleWrapActionRight: { marginRight: 0 }, title: { fontSize: theme.typography.pxToRem(16), lineHeight: '24px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, subtitle: { fontSize: theme.typography.pxToRem(12), lineHeight: 1, textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, actionIconPositionLeft: { order: -1 }, childImg: { height: '100%', transform: 'translateX(-50%)', position: 'relative', left: '50%' } }; }; var babelPluginFlowReactPropTypes_proptype_TitlePosition = require('prop-types').oneOf(['top', 'bottom']); var babelPluginFlowReactPropTypes_proptype_ActionPosition = require('prop-types').oneOf(['left', 'right']); var babelPluginFlowReactPropTypes_proptype_Props = { /** * An IconButton element to be used as secondary action target * (primary action target is the tile itself). */ actionIcon: typeof babelPluginFlowReactPropTypes_proptype_Node === 'function' ? babelPluginFlowReactPropTypes_proptype_Node : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_Node), /** * Position of secondary action IconButton. */ actionPosition: require('prop-types').oneOf(['left', 'right']), /** * Useful to extend the style applied to components. */ classes: require('prop-types').object, /** * @ignore */ className: require('prop-types').string, /** * String or element serving as subtitle (support text). */ subtitle: typeof babelPluginFlowReactPropTypes_proptype_Node === 'function' ? babelPluginFlowReactPropTypes_proptype_Node : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_Node), /** * Title to be displayed on tile. */ title: typeof babelPluginFlowReactPropTypes_proptype_Node === 'function' ? babelPluginFlowReactPropTypes_proptype_Node.isRequired ? babelPluginFlowReactPropTypes_proptype_Node.isRequired : babelPluginFlowReactPropTypes_proptype_Node : require('prop-types').shape(babelPluginFlowReactPropTypes_proptype_Node).isRequired, /** * Position of the title bar. */ titlePosition: require('prop-types').oneOf(['top', 'bottom']) }; var GridListTileBar = function (_React$Component) { (0, _inherits3.default)(GridListTileBar, _React$Component); function GridListTileBar() { (0, _classCallCheck3.default)(this, GridListTileBar); return (0, _possibleConstructorReturn3.default)(this, (GridListTileBar.__proto__ || (0, _getPrototypeOf2.default)(GridListTileBar)).apply(this, arguments)); } (0, _createClass3.default)(GridListTileBar, [{ key: 'render', value: function render() { var _classNames, _classNames2; var _props = this.props, actionIcon = _props.actionIcon, actionPosition = _props.actionPosition, classes = _props.classes, classNameProp = _props.className, subtitle = _props.subtitle, title = _props.title, titlePosition = _props.titlePosition, other = (0, _objectWithoutProperties3.default)(_props, ['actionIcon', 'actionPosition', 'classes', 'className', 'subtitle', 'title', 'titlePosition']); var actionPos = actionIcon && actionPosition; var className = (0, _classnames2.default)(classes.root, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.rootBottom, titlePosition === 'bottom'), (0, _defineProperty3.default)(_classNames, classes.rootTop, titlePosition === 'top'), (0, _defineProperty3.default)(_classNames, classes.rootWithSubtitle, subtitle), _classNames), classNameProp); // Remove the margin between the title / subtitle wrapper, and the Action Icon var titleWrapClassName = (0, _classnames2.default)(classes.titleWrap, (_classNames2 = {}, (0, _defineProperty3.default)(_classNames2, classes.titleWrapActionLeft, actionPos === 'left'), (0, _defineProperty3.default)(_classNames2, classes.titleWrapActionRight, actionPos === 'right'), _classNames2)); return _react2.default.createElement( 'div', (0, _extends3.default)({ className: className }, other), _react2.default.createElement( 'div', { className: titleWrapClassName }, _react2.default.createElement( 'div', { className: classes.title }, title ), subtitle ? _react2.default.createElement( 'div', { className: classes.subtitle }, subtitle ) : null ), actionIcon ? _react2.default.createElement( 'div', { className: (0, _classnames2.default)((0, _defineProperty3.default)({}, classes.actionIconPositionLeft, actionPos === 'left')) }, actionIcon ) : null ); } }]); return GridListTileBar; }(_react2.default.Component); GridListTileBar.defaultProps = { actionPosition: 'right', titlePosition: 'bottom' }; exports.default = (0, _withStyles2.default)(styles, { name: 'MuiGridListTileBar' })(GridListTileBar);