130 lines
3.9 KiB
JavaScript
130 lines
3.9 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
|
|
var _typeof2 = require('babel-runtime/helpers/typeof');
|
|
|
|
var _typeof3 = _interopRequireDefault(_typeof2);
|
|
|
|
var _extends2 = require('babel-runtime/helpers/extends');
|
|
|
|
var _extends3 = _interopRequireDefault(_extends2);
|
|
|
|
var _react = require('react');
|
|
|
|
var _react2 = _interopRequireDefault(_react);
|
|
|
|
var _propTypes = require('prop-types');
|
|
|
|
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
|
|
var _createReactClass = require('create-react-class');
|
|
|
|
var _createReactClass2 = _interopRequireDefault(_createReactClass);
|
|
|
|
var _MenuMixin = require('./MenuMixin');
|
|
|
|
var _MenuMixin2 = _interopRequireDefault(_MenuMixin);
|
|
|
|
var _rcAnimate = require('rc-animate');
|
|
|
|
var _rcAnimate2 = _interopRequireDefault(_rcAnimate);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
|
|
|
var SubPopupMenu = (0, _createReactClass2['default'])({
|
|
displayName: 'SubPopupMenu',
|
|
|
|
propTypes: {
|
|
onSelect: _propTypes2['default'].func,
|
|
onClick: _propTypes2['default'].func,
|
|
onDeselect: _propTypes2['default'].func,
|
|
onOpenChange: _propTypes2['default'].func,
|
|
onDestroy: _propTypes2['default'].func,
|
|
openTransitionName: _propTypes2['default'].string,
|
|
openAnimation: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].object]),
|
|
openKeys: _propTypes2['default'].arrayOf(_propTypes2['default'].string),
|
|
closeSubMenuOnMouseLeave: _propTypes2['default'].bool,
|
|
visible: _propTypes2['default'].bool,
|
|
children: _propTypes2['default'].any
|
|
},
|
|
|
|
mixins: [_MenuMixin2['default']],
|
|
|
|
onDeselect: function onDeselect(selectInfo) {
|
|
this.props.onDeselect(selectInfo);
|
|
},
|
|
onSelect: function onSelect(selectInfo) {
|
|
this.props.onSelect(selectInfo);
|
|
},
|
|
onClick: function onClick(e) {
|
|
this.props.onClick(e);
|
|
},
|
|
onOpenChange: function onOpenChange(e) {
|
|
this.props.onOpenChange(e);
|
|
},
|
|
onDestroy: function onDestroy(key) {
|
|
this.props.onDestroy(key);
|
|
},
|
|
onItemHover: function onItemHover(e) {
|
|
var _e$openChanges = e.openChanges,
|
|
openChanges = _e$openChanges === undefined ? [] : _e$openChanges;
|
|
|
|
openChanges = openChanges.concat(this.getOpenChangesOnItemHover(e));
|
|
if (openChanges.length) {
|
|
this.onOpenChange(openChanges);
|
|
}
|
|
},
|
|
getOpenTransitionName: function getOpenTransitionName() {
|
|
return this.props.openTransitionName;
|
|
},
|
|
renderMenuItem: function renderMenuItem(c, i, subIndex) {
|
|
if (!c) {
|
|
return null;
|
|
}
|
|
var props = this.props;
|
|
var extraProps = {
|
|
openKeys: props.openKeys,
|
|
selectedKeys: props.selectedKeys,
|
|
openSubMenuOnMouseEnter: true
|
|
};
|
|
return this.renderCommonMenuItem(c, i, subIndex, extraProps);
|
|
},
|
|
render: function render() {
|
|
var renderFirst = this.renderFirst;
|
|
this.renderFirst = 1;
|
|
this.haveOpened = this.haveOpened || this.props.visible;
|
|
if (!this.haveOpened) {
|
|
return null;
|
|
}
|
|
var transitionAppear = true;
|
|
if (!renderFirst && this.props.visible) {
|
|
transitionAppear = false;
|
|
}
|
|
var props = (0, _extends3['default'])({}, this.props);
|
|
props.className += ' ' + props.prefixCls + '-sub';
|
|
var animProps = {};
|
|
if (props.openTransitionName) {
|
|
animProps.transitionName = props.openTransitionName;
|
|
} else if ((0, _typeof3['default'])(props.openAnimation) === 'object') {
|
|
animProps.animation = (0, _extends3['default'])({}, props.openAnimation);
|
|
if (!transitionAppear) {
|
|
delete animProps.animation.appear;
|
|
}
|
|
}
|
|
return _react2['default'].createElement(
|
|
_rcAnimate2['default'],
|
|
(0, _extends3['default'])({}, animProps, {
|
|
showProp: 'visible',
|
|
component: '',
|
|
transitionAppear: transitionAppear
|
|
}),
|
|
this.renderRoot(props)
|
|
);
|
|
}
|
|
});
|
|
|
|
exports['default'] = SubPopupMenu;
|
|
module.exports = exports['default']; |