UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

179 lines (149 loc) 5.53 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _withStyles = _interopRequireDefault(require("../styles/withStyles")); var _BreadcrumbItem = _interopRequireDefault(require("../BreadcrumbItem")); var _colorManipulator = require("../styles/colorManipulator"); var _classnames = _interopRequireDefault(require("classnames")); var styles = function styles(theme) { return { root: (0, _extends2.default)({ '@global a': (0, _extends2.default)({ textDecoration: 'none', '&:hover': { color: theme.palette.primary.main } }, theme.typography.subheading), '@global span': { color: (0, _colorManipulator.fade)(theme.typography.subheading.color, 0.6) } }, theme.typography.subheading), black: { '@global a': { '&:hover': { color: theme.palette.primary.main }, color: theme.palette.common.black }, '@global span': { color: (0, _colorManipulator.fade)(theme.palette.common.black, 0.6) }, color: theme.palette.common.black }, white: { '@global a': { '&:hover': { color: theme.palette.common.white }, color: (0, _colorManipulator.fade)(theme.palette.common.white, 0.8) }, '@global span': { color: (0, _colorManipulator.fade)(theme.palette.common.white, 0.6) }, color: (0, _colorManipulator.fade)(theme.palette.common.white, 0.8) }, separator: { padding: '0 0.5em', fontStyle: 'normal' } }; }; var Breadcrumb = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(Breadcrumb, _React$Component); function Breadcrumb(props) { var _this; (0, _classCallCheck2.default)(this, Breadcrumb); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Breadcrumb).call(this, props)); _this.state = { items: _react.default.Children.toArray(_this.props.children).filter(function (i) { return i; }) }; return _this; } (0, _createClass2.default)(Breadcrumb, [{ key: "render", value: function render() { var _classNames; var _this$props = this.props, routes = _this$props.routes, itemRender = _this$props.itemRender, separator = _this$props.separator, params = _this$props.params, color = _this$props.color, classes = _this$props.classes; var items = this.state.items; var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.white, color === 'white'), (0, _defineProperty2.default)(_classNames, classes.black, color === 'black'), _classNames)); var sep = _react.default.createElement("i", { className: classes.separator }, separator); var extraBreadcrumbItems = routes && routes.length > 0 ? routes.map(function (route, index) { var path = route.path, icon = route.icon, name = route.name; var last = routes.length === index + 1; var paths = [route.path]; return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_BreadcrumbItem.default, { key: path, path: path, icon: icon, name: name, notLink: last, classes: classes }, itemRender ? itemRender(route, params, routes, paths) : ''), !last ? sep : ''); }) : items.map(function (child, index) { var last = items.length === index + 1; return _react.default.createElement(_react.default.Fragment, null, child, !last ? sep : ''); }); return _react.default.createElement("div", { className: className }, extraBreadcrumbItems); } }]); return Breadcrumb; }(_react.default.Component); Breadcrumb.propTypes = { /** * Custom color of each items */ color: _propTypes.default.oneOf(['default', 'black', 'white']), /** * Custom item renderer, itemRender(route, params, routes, paths) => ReactNode */ itemRender: _propTypes.default.func, /** * Routing parameters */ params: _propTypes.default.object, /** * The routing stack information of router */ routes: _propTypes.default.array, /** * Custom separator */ separator: _propTypes.default.string }; Breadcrumb.defaultProps = { separator: '/', color: 'default' }; var _default = (0, _withStyles.default)(styles, { name: 'RMBreadcrumb', withTheme: true })(Breadcrumb); exports.default = _default;