zent
Version:
一套前端设计语言和基于React的实现
198 lines (153 loc) • 7.13 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = undefined;
var _class2, _temp3;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _zentPopover = require('zent-popover');
var _zentPopover2 = _interopRequireDefault(_zentPopover);
var _zentIcon = require('zent-icon');
var _zentIcon2 = _interopRequireDefault(_zentIcon);
var _classnames = require('zent-utils/classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _CommonMenu2 = require('./CommonMenu');
var _CommonMenu3 = _interopRequireDefault(_CommonMenu2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var PopoverContent = _zentPopover2['default'].Content;
var PopoverHoverTrigger = _zentPopover2['default'].Trigger.Hover;
var withPopover = _zentPopover2['default'].withPopover;
var HoverContent = withPopover(function (_CommonMenu) {
_inherits(_HoverContent, _CommonMenu);
function _HoverContent() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, _HoverContent);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = _HoverContent.__proto__ || Object.getPrototypeOf(_HoverContent)).call.apply(_ref, [this].concat(args))), _this), _this.onClick = function (e, index) {
var _this$props = _this.props,
onClick = _this$props.onClick,
popover = _this$props.popover;
popover.close();
onClick(e, index);
}, _this.renderMenuItem = function (c, i, index) {
if (!c) {
return null;
}
return _this.renderCommonMenuItem(c, i, index);
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(_HoverContent, [{
key: 'render',
value: function render() {
var _props = this.props,
prefix = _props.prefix,
children = _props.children;
return _react2['default'].createElement(
'ul',
{
className: (0, _classnames2['default'])(prefix + '-menu', prefix + '-sub-menu')
},
_react2['default'].Children.map(children, this.renderMenuItem)
);
}
}]);
return _HoverContent;
}(_CommonMenu3['default']));
var MenuItem = (_temp3 = _class2 = function (_Component) {
_inherits(MenuItem, _Component);
function MenuItem() {
var _ref2;
var _temp2, _this2, _ret2;
_classCallCheck(this, MenuItem);
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, (_ref2 = MenuItem.__proto__ || Object.getPrototypeOf(MenuItem)).call.apply(_ref2, [this].concat(args))), _this2), _this2.renderContent = function () {
var _this2$props = _this2.props,
title = _this2$props.title,
prefix = _this2$props.prefix,
children = _this2$props.children,
onClick = _this2$props.onClick,
className = _this2$props.className,
overlayClassName = _this2$props.overlayClassName,
disabled = _this2$props.disabled;
if (disabled) {
return title;
}
return _react2['default'].createElement(
_zentPopover2['default'],
{
wrapperClassName: prefix + '-sub-menu-popover-wrapper',
className: (0, _classnames2['default'])(prefix + '-sub-menu-overlay', overlayClassName),
position: _zentPopover2['default'].Position.RightTop,
display: 'inline-block',
cushion: 5
},
_react2['default'].createElement(
PopoverHoverTrigger,
{
showDelay: 200,
hideDelay: 200
},
_react2['default'].createElement(
'div',
{ className: prefix + '-sub-menu-trigger' },
title,
_react2['default'].createElement(_zentIcon2['default'], { type: 'right' })
)
),
_react2['default'].createElement(
PopoverContent,
null,
_react2['default'].createElement(
HoverContent,
{
prefix: prefix,
onClick: onClick,
className: className
},
children
)
)
);
}, _temp2), _possibleConstructorReturn(_this2, _ret2);
}
_createClass(MenuItem, [{
key: 'render',
value: function render() {
var _props2 = this.props,
prefix = _props2.prefix,
className = _props2.className,
disabled = _props2.disabled;
return _react2['default'].createElement(
'li',
{
className: (0, _classnames2['default'])(prefix + '-menu-item', className, _defineProperty({}, prefix + '-menu-item-disabled', disabled))
},
this.renderContent()
);
}
}]);
return MenuItem;
}(_react.Component), _class2.propTypes = {
title: _react.PropTypes.string,
prefix: _react.PropTypes.string,
className: _react.PropTypes.string,
overlayClassName: _react.PropTypes.string,
disabled: _react.PropTypes.bool,
onClick: _react.PropTypes.func
}, _class2.defaultProps = {
prefix: 'zent',
disabled: false
}, _temp3);
exports['default'] = MenuItem;
module.exports = exports['default'];
;