MenuItem.js 2.06 KB
'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _babelHelperVueJsxMergeProps = require('babel-helper-vue-jsx-merge-props');

var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);

var _extends2 = require('babel-runtime/helpers/extends');

var _extends3 = _interopRequireDefault(_extends2);

var _vcMenu = require('../vc-menu');

var _propsUtil = require('../_util/props-util');

var _tooltip = require('../tooltip');

var _tooltip2 = _interopRequireDefault(_tooltip);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function noop() {}
exports['default'] = {
  name: 'MenuItem',
  inheritAttrs: false,
  props: _vcMenu.itemProps,
  inject: {
    getInlineCollapsed: { 'default': function _default() {
        return noop;
      } }
  },
  isMenuItem: 1,
  methods: {
    onKeyDown: function onKeyDown(e) {
      this.$refs.menuItem.onKeyDown(e);
    }
  },
  render: function render() {
    var h = arguments[0];

    var props = (0, _propsUtil.getOptionProps)(this);
    var level = props.level,
        title = props.title,
        rootPrefixCls = props.rootPrefixCls;
    var getInlineCollapsed = this.getInlineCollapsed,
        $slots = this.$slots,
        attrs = this.$attrs,
        $listeners = this.$listeners;

    var inlineCollapsed = getInlineCollapsed();
    var titleNode = void 0;
    if (inlineCollapsed) {
      titleNode = title || (level === 1 ? $slots['default'] : '');
    }

    var itemProps = {
      props: (0, _extends3['default'])({}, props, {
        title: inlineCollapsed ? null : title
      }),
      attrs: attrs,
      on: $listeners
    };
    var toolTipProps = {
      props: {
        title: titleNode,
        placement: 'right',
        overlayClassName: rootPrefixCls + '-inline-collapsed-tooltip'
      }
    };
    return h(
      _tooltip2['default'],
      toolTipProps,
      [h(
        _vcMenu.Item,
        (0, _babelHelperVueJsxMergeProps2['default'])([itemProps, { ref: 'menuItem' }]),
        [$slots['default']]
      )]
    );
  }
};