|
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _extends2 = require('babel-runtime/helpers/extends');
-
- var _extends3 = _interopRequireDefault(_extends2);
-
- var _keys = require('babel-runtime/core-js/object/keys');
-
- var _keys2 = _interopRequireDefault(_keys);
-
- 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);
-
- exports.getStyles = getStyles;
-
- var _simpleAssign = require('simple-assign');
-
- var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
-
- var _react = require('react');
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = require('prop-types');
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- var _IconButton = require('../IconButton');
-
- var _IconButton2 = _interopRequireDefault(_IconButton);
-
- var _menu = require('../svg-icons/navigation/menu');
-
- var _menu2 = _interopRequireDefault(_menu);
-
- var _Paper = require('../Paper');
-
- var _Paper2 = _interopRequireDefault(_Paper);
-
- var _propTypes3 = require('../utils/propTypes');
-
- var _propTypes4 = _interopRequireDefault(_propTypes3);
-
- var _warning = require('warning');
-
- var _warning2 = _interopRequireDefault(_warning);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- function getStyles(props, context) {
- var _context$muiTheme = context.muiTheme,
- appBar = _context$muiTheme.appBar,
- iconButtonSize = _context$muiTheme.button.iconButtonSize,
- zIndex = _context$muiTheme.zIndex;
-
-
- var flatButtonSize = 36;
-
- var styles = {
- root: {
- position: 'relative',
- zIndex: zIndex.appBar,
- width: '100%',
- display: 'flex',
- backgroundColor: appBar.color,
- paddingLeft: appBar.padding,
- paddingRight: appBar.padding
- },
- title: {
- whiteSpace: 'nowrap',
- overflow: 'hidden',
- textOverflow: 'ellipsis',
- margin: 0,
- paddingTop: 0,
- letterSpacing: 0,
- fontSize: 24,
- fontWeight: appBar.titleFontWeight,
- color: appBar.textColor,
- height: appBar.height,
- lineHeight: appBar.height + 'px'
- },
- mainElement: {
- boxFlex: 1,
- flex: '1'
- },
- iconButtonStyle: {
- marginTop: (appBar.height - iconButtonSize) / 2,
- marginRight: 8,
- marginLeft: -16
- },
- iconButtonIconStyle: {
- fill: appBar.textColor,
- color: appBar.textColor
- },
- flatButton: {
- color: appBar.textColor,
- marginTop: (iconButtonSize - flatButtonSize) / 2 + 1
- }
- };
-
- return styles;
- }
-
- var AppBar = function (_Component) {
- (0, _inherits3.default)(AppBar, _Component);
-
- function AppBar() {
- var _ref;
-
- var _temp, _this, _ret;
-
- (0, _classCallCheck3.default)(this, AppBar);
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = AppBar.__proto__ || (0, _getPrototypeOf2.default)(AppBar)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickLeftIconButton = function (event) {
- if (_this.props.onLeftIconButtonClick) {
- _this.props.onLeftIconButtonClick(event);
- }
- }, _this.handleClickRightIconButton = function (event) {
- if (_this.props.onRightIconButtonClick) {
- _this.props.onRightIconButtonClick(event);
- }
- }, _this.handleTitleClick = function (event) {
- if (_this.props.onTitleClick) {
- _this.props.onTitleClick(event);
- }
- }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
- }
-
- (0, _createClass3.default)(AppBar, [{
- key: 'componentDidMount',
- value: function componentDidMount() {
- process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!this.props.iconElementLeft || !this.props.iconClassNameLeft, 'Material-UI: Properties iconElementLeft\n and iconClassNameLeft cannot be simultaneously defined. Please use one or the other.') : void 0;
-
- process.env.NODE_ENV !== "production" ? (0, _warning2.default)(!this.props.iconElementRight || !this.props.iconClassNameRight, 'Material-UI: Properties iconElementRight\n and iconClassNameRight cannot be simultaneously defined. Please use one or the other.') : void 0;
- }
- }, {
- key: 'render',
- value: function render() {
- var _props = this.props,
- title = _props.title,
- titleStyle = _props.titleStyle,
- iconStyleLeft = _props.iconStyleLeft,
- iconStyleRight = _props.iconStyleRight,
- onTitleClick = _props.onTitleClick,
- showMenuIconButton = _props.showMenuIconButton,
- iconElementLeft = _props.iconElementLeft,
- iconElementRight = _props.iconElementRight,
- iconClassNameLeft = _props.iconClassNameLeft,
- iconClassNameRight = _props.iconClassNameRight,
- onLeftIconButtonClick = _props.onLeftIconButtonClick,
- onRightIconButtonClick = _props.onRightIconButtonClick,
- className = _props.className,
- style = _props.style,
- zDepth = _props.zDepth,
- children = _props.children,
- other = (0, _objectWithoutProperties3.default)(_props, ['title', 'titleStyle', 'iconStyleLeft', 'iconStyleRight', 'onTitleClick', 'showMenuIconButton', 'iconElementLeft', 'iconElementRight', 'iconClassNameLeft', 'iconClassNameRight', 'onLeftIconButtonClick', 'onRightIconButtonClick', 'className', 'style', 'zDepth', 'children']);
- var prepareStyles = this.context.muiTheme.prepareStyles;
-
- var styles = getStyles(this.props, this.context);
-
- var menuElementLeft = void 0;
- var menuElementRight = void 0;
-
- // If the title is a string, wrap in an h1 tag.
- // If not, wrap in a div tag.
- var titleComponent = typeof title === 'string' || title instanceof String ? 'h1' : 'div';
-
- var titleElement = _react2.default.createElement(titleComponent, {
- onClick: this.handleTitleClick,
- style: prepareStyles((0, _simpleAssign2.default)(styles.title, styles.mainElement, titleStyle))
- }, title);
-
- var iconLeftStyle = (0, _simpleAssign2.default)({}, styles.iconButtonStyle, iconStyleLeft);
-
- if (showMenuIconButton) {
- if (iconElementLeft) {
- var iconElementLeftProps = {};
-
- if (iconElementLeft.type.muiName === 'IconButton') {
- var iconElemLeftChildren = iconElementLeft.props.children;
- var iconButtonIconStyle = !(iconElemLeftChildren && iconElemLeftChildren.props && iconElemLeftChildren.props.color) ? styles.iconButtonIconStyle : null;
-
- iconElementLeftProps.iconStyle = (0, _simpleAssign2.default)({}, iconButtonIconStyle, iconElementLeft.props.iconStyle);
- }
-
- if (!iconElementLeft.props.onClick && this.props.onLeftIconButtonClick) {
- iconElementLeftProps.onClick = this.handleClickLeftIconButton;
- }
-
- menuElementLeft = _react2.default.createElement(
- 'div',
- { style: prepareStyles(iconLeftStyle) },
- (0, _keys2.default)(iconElementLeftProps).length > 0 ? (0, _react.cloneElement)(iconElementLeft, iconElementLeftProps) : iconElementLeft
- );
- } else {
- menuElementLeft = _react2.default.createElement(
- _IconButton2.default,
- {
- style: iconLeftStyle,
- iconStyle: styles.iconButtonIconStyle,
- iconClassName: iconClassNameLeft,
- onClick: this.handleClickLeftIconButton
- },
- iconClassNameLeft ? '' : _react2.default.createElement(_menu2.default, { style: (0, _simpleAssign2.default)({}, styles.iconButtonIconStyle) })
- );
- }
- }
-
- var iconRightStyle = (0, _simpleAssign2.default)({}, styles.iconButtonStyle, {
- marginRight: -16,
- marginLeft: 'auto'
- }, iconStyleRight);
-
- if (iconElementRight) {
- var iconElementRightProps = {};
-
- switch (iconElementRight.type.muiName) {
- case 'IconMenu':
- case 'IconButton':
- var iconElemRightChildren = iconElementRight.props.children;
- var _iconButtonIconStyle = !(iconElemRightChildren && iconElemRightChildren.props && iconElemRightChildren.props.color) ? styles.iconButtonIconStyle : null;
-
- iconElementRightProps.iconStyle = (0, _simpleAssign2.default)({}, _iconButtonIconStyle, iconElementRight.props.iconStyle);
- break;
-
- case 'FlatButton':
- iconElementRightProps.style = (0, _simpleAssign2.default)({}, styles.flatButton, iconElementRight.props.style);
- break;
-
- default:
- }
-
- if (!iconElementRight.props.onClick && this.props.onRightIconButtonClick) {
- iconElementRightProps.onClick = this.handleClickRightIconButton;
- }
-
- menuElementRight = _react2.default.createElement(
- 'div',
- { style: prepareStyles(iconRightStyle) },
- (0, _keys2.default)(iconElementRightProps).length > 0 ? (0, _react.cloneElement)(iconElementRight, iconElementRightProps) : iconElementRight
- );
- } else if (iconClassNameRight) {
- menuElementRight = _react2.default.createElement(_IconButton2.default, {
- style: iconRightStyle,
- iconStyle: styles.iconButtonIconStyle,
- iconClassName: iconClassNameRight,
- onClick: this.handleClickRightIconButton
- });
- }
-
- return _react2.default.createElement(
- _Paper2.default,
- (0, _extends3.default)({}, other, {
- rounded: false,
- className: className,
- style: (0, _simpleAssign2.default)({}, styles.root, style),
- zDepth: zDepth
- }),
- menuElementLeft,
- titleElement,
- menuElementRight,
- children
- );
- }
- }]);
- return AppBar;
- }(_react.Component);
-
- AppBar.muiName = 'AppBar';
- AppBar.defaultProps = {
- showMenuIconButton: true,
- title: '',
- zDepth: 1
- };
- AppBar.contextTypes = {
- muiTheme: _propTypes2.default.object.isRequired
- };
- AppBar.propTypes = process.env.NODE_ENV !== "production" ? {
- /**
- * Can be used to render a tab inside an app bar for instance.
- */
- children: _propTypes2.default.node,
- /**
- * Applied to the app bar's root element.
- */
- className: _propTypes2.default.string,
- /**
- * The classname of the icon on the left of the app bar.
- * If you are using a stylesheet for your icons, enter the class name for the icon to be used here.
- */
- iconClassNameLeft: _propTypes2.default.string,
- /**
- * Similiar to the iconClassNameLeft prop except that
- * it applies to the icon displayed on the right of the app bar.
- */
- iconClassNameRight: _propTypes2.default.string,
- /**
- * The custom element to be displayed on the left side of the
- * app bar such as an SvgIcon.
- */
- iconElementLeft: _propTypes2.default.element,
- /**
- * Similiar to the iconElementLeft prop except that this element is displayed on the right of the app bar.
- */
- iconElementRight: _propTypes2.default.element,
- /**
- * Override the inline-styles of the element displayed on the left side of the app bar.
- */
- iconStyleLeft: _propTypes2.default.object,
- /**
- * Override the inline-styles of the element displayed on the right side of the app bar.
- */
- iconStyleRight: _propTypes2.default.object,
- /**
- * Callback function for when the left icon is selected via a click.
- *
- * @param {object} event Click event targeting the left `IconButton`.
- */
- onLeftIconButtonClick: _propTypes2.default.func,
- /**
- * Callback function for when the right icon is selected via a click.
- *
- * @param {object} event Click event targeting the right `IconButton`.
- */
- onRightIconButtonClick: _propTypes2.default.func,
- /**
- * Callback function for when the title text is selected via a click.
- *
- * @param {object} event Click event targeting the `title` node.
- */
- onTitleClick: _propTypes2.default.func,
- /**
- * Determines whether or not to display the Menu icon next to the title.
- * Setting this prop to false will hide the icon.
- */
- showMenuIconButton: _propTypes2.default.bool,
- /**
- * Override the inline-styles of the root element.
- */
- style: _propTypes2.default.object,
- /**
- * The title to display on the app bar.
- */
- title: _propTypes2.default.node,
- /**
- * Override the inline-styles of the app bar's title element.
- */
- titleStyle: _propTypes2.default.object,
- /**
- * The zDepth of the component.
- * The shadow of the app bar is also dependent on this property.
- */
- zDepth: _propTypes4.default.zDepth
- } : {};
- exports.default = AppBar;
|