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