2020-05-19 11:43:42 +03:00

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'];