UNPKG

shineout

Version:

Shein 前端组件库

107 lines (82 loc) 3.53 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _Popover = _interopRequireDefault(require("../Popover")); var _defaultProps = require("../utils/defaultProps"); var _styles = require("./styles"); var _uid = require("../utils/uid"); var _Caret = _interopRequireDefault(require("../icons/Caret")); var defaultValue = (0, _objectSpread2.default)({}, _defaultProps.defaultProps, { data: [], separator: '/' }); var Breadcrumb = /*#__PURE__*/ function (_React$PureComponent) { (0, _inheritsLoose2.default)(Breadcrumb, _React$PureComponent); function Breadcrumb() { return _React$PureComponent.apply(this, arguments) || this; } var _proto = Breadcrumb.prototype; _proto.renderArray = function renderArray(data) { var _this = this; var first = data[0]; return _react.default.createElement("span", null, this.renderItem(first), _react.default.createElement("span", { className: (0, _styles.breadcrumbClass)('down') }, _react.default.createElement(_Caret.default, null)), _react.default.createElement(_Popover.default, { position: "bottom" }, data.slice(1).map(function (d, i) { return _react.default.createElement("div", { className: (0, _styles.breadcrumbClass)('dropdown-item'), key: i }, _this.renderItem(d)); }))); }; _proto.renderItem = function renderItem(dataItem) { var renderItem = this.props.renderItem; var d = dataItem; var item = d.title; if (!_react.default.isValidElement(item)) { if (d.onClick || d.url) { var props = { onClick: d.onClick }; if (d.url) props.href = d.url; item = _react.default.createElement("a", props, d.icon, "\xA0", d.title); } else { item = _react.default.createElement("b", null, d.icon, "\xA0", d.title); } } return renderItem ? renderItem(dataItem) : item; }; _proto.render = function render() { var _this2 = this; var _this$props = this.props, data = _this$props.data, separator = _this$props.separator, keygen = _this$props.keygen; var className = (0, _classnames.default)((0, _styles.breadcrumbClass)('_'), this.props.className); return _react.default.createElement("div", { className: className, style: this.props.style }, data && data.map(function (d, index) { return _react.default.createElement("span", { key: keygen ? (0, _uid.getKey)(d, keygen, index) : index }, Array.isArray(d) ? _this2.renderArray(d) : _this2.renderItem(d), index !== data.length - 1 ? _react.default.createElement("span", { className: (0, _styles.breadcrumbClass)('separator') }, separator) : null); })); }; return Breadcrumb; }(_react.default.PureComponent); (0, _defineProperty2.default)(Breadcrumb, "defaultProps", defaultValue); (0, _defineProperty2.default)(Breadcrumb, "displayName", void 0); Breadcrumb.displayName = 'ShineoutBreadcrumb'; var _default = Breadcrumb; exports.default = _default;