UNPKG

@evg-b/evg-ui

Version:

EVG-UI library inspired by Material Design.

160 lines (142 loc) 5.45 kB
import _extends from '@babel/runtime/helpers/extends'; import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties'; import _defineProperty from '@babel/runtime/helpers/defineProperty'; import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import Elevation from '../styles/Elevation.js'; import '@babel/runtime/helpers/slicedToArray'; import withStyles from '../styles/withStyles.js'; import '@babel/runtime/helpers/construct'; import '@babel/runtime/helpers/toConsumableArray'; import '@babel/runtime/helpers/classCallCheck'; import '@babel/runtime/helpers/createClass'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var styles = { base: _objectSpread(_objectSpread({}, Elevation(2)), {}, { zIndex: 999, position: 'fixed', display: 'flex', alignItems: 'center', justifyContent: 'space-between', height: '56px', width: '100%', backgroundColor: function backgroundColor(props) { return props.Color.Base(); }, color: function color(props) { return props.Color.Contrast(); } }), top: { top: 0 }, bottom: { bottom: 0 }, "case": { display: 'flex' }, left: { paddingLeft: '16px' }, title: { flex: 1, paddingLeft: '32px' }, right: { paddingRight: '16px' }, titleCenter: { justifyContent: 'center' } }; // const metaThemeColor = (color) => { // let metaColor = document.querySelector('meta[name="theme-color"]') // let meta = document.createElement('meta'); // if (metaColor && metaColor.content !== color) { // metaColor.setAttribute('content', color); // } else { // meta.name = 'theme-color'; // meta.setAttribute('content', color); // document.getElementsByTagName('head')[0].appendChild(meta); // } // } /** * Это верхняя панель управления обычно используется для заголовков, навигации и действий связанных с текущим экраном. */ var AppBar = /*#__PURE__*/React.forwardRef(function AppBar(props, ref) { var classes = props.classes, className = props.className; props.children; props.color; var left = props.left, title = props.title, right = props.right, position = props.position, titleCenter = props.titleCenter, otherProps = _objectWithoutProperties(props, ["classes", "className", "children", "color", "left", "title", "right", "position", "titleCenter"]); // useEffect(() => { // if (SystemColorBar) { // metaThemeColor(Color(color).Color) // } // }) return /*#__PURE__*/React.createElement("div", _extends({ ref: ref, className: classNames(classes.base, className), style: { position: position } }, otherProps), /*#__PURE__*/React.createElement("div", { className: classNames(classes["case"], classes.left) }, left), /*#__PURE__*/React.createElement("div", { className: classNames(classes["case"], classes.title, _defineProperty({}, classes.titleCenter, titleCenter)) }, title), /*#__PURE__*/React.createElement("div", { className: classNames(classes["case"], classes.right) }, right)); }); AppBar.propTypes = { /** * Объект содержит jss стили компонента. */ classes: PropTypes.object, /** * Чтобы указать CSS классы, используйте этот атрибут. */ className: PropTypes.string, /** * Это свойство не реализуется. */ children: PropTypes.any, /** * Название цвета в разных форматах. */ color: PropTypes.string, /** * Позиционирование компонента на странице */ position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky']), /** * Контейнер элементов в левой части. */ left: PropTypes.node, /** * Контейнер элементов между left и right. */ title: PropTypes.node, /** * Контейнер элементов в правой части. */ right: PropTypes.node, /** * Позиция title в центре или нет. */ titleCenter: PropTypes.bool // SystemColorBar: PropTypes.bool, }; AppBar.defaultProps = { color: 'default', position: 'fixed', titleCenter: false // SystemColorBar: true, }; AppBar.displayName = 'AppBarEVG'; var AppBar$1 = withStyles(styles)(AppBar); export default AppBar$1;