@evg-b/evg-ui
Version:
EVG-UI library inspired by Material Design.
160 lines (142 loc) • 5.45 kB
JavaScript
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;