all files / src/ SubMenu.jsx

76.71% Statements 56/73
54.55% Branches 24/44
80% Functions 8/10
100% Lines 41/41
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118                                54×                                                                                                                          
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
var _react = require('react');
 
var _react2 = _interopRequireDefault(_react);
 
var _propTypes = require('prop-types');
 
var _propTypes2 = _interopRequireDefault(_propTypes);
 
var _classnames = require('classnames');
 
var _classnames2 = _interopRequireDefault(_classnames);
 
var _rcMenu = require('rc-menu');
 
var _utils = require('./utils');
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
 
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; Iif (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
 
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
function _possibleConstructorReturn(self, call) { Iif (!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) { Iif (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 } }); Eif (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); }
 
var SubMenu = function (_React$Component) {
  _inherits(SubMenu, _React$Component);
 
  function SubMenu() {
    _classCallCheck(this, SubMenu);
 
    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
  }
 
  SubMenu.prototype.render = function render() {
    var _props = this.props,
        title = _props.title,
        props = _objectWithoutProperties(_props, ['title']);
 
    var _context = this.context,
        mode = _context.mode,
        level = _context.level,
        theme = _context.theme,
        prefixCls = _context.prefixCls,
        lineClamp = _context.lineClamp;
 
    var _getClampProps = (0, _utils.getClampProps)({
      mode: mode,
      level: props.level || level,
      className: prefixCls + '-submenu-title-text ' + prefixCls + '-clamp-text',
      lineClamp: lineClamp
    }),
        titleProps = _getClampProps.props,
        clamp = _getClampProps.clamp;
 
    if (typeof title === 'string') {
      titleProps.title = title;
    }
 
    var titleJSX = title;
    if (clamp) {
      titleJSX = _react2['default'].createElement(
        'span',
        titleProps,
        title
      );
    } else {
      titleJSX = _react2['default'].createElement(
        'span',
        _extends({}, titleProps, { className: prefixCls + '-submenu-title-text' }),
        title
      );
    }
    props.title = titleJSX;
 
    if (clamp) {
      props.className = (0, _classnames2['default'])(props.className, prefixCls + '-submenu-clamp');
    }
 
    return _react2['default'].createElement(_rcMenu.SubMenu, _extends({}, props, {
      ref: this.saveSubMenu,
      popupClassName: (0, _classnames2['default'])(prefixCls + '-' + theme)
    }));
  };
 
  return SubMenu;
}(_react2['default'].Component);
 
SubMenu.propTypes = _extends({}, _rcMenu.SubMenu.propTypes, {
  title: _propTypes2['default'].node
});
 
SubMenu.defaultProps = _extends({}, _rcMenu.SubMenu.defaultProps, {
  title: null
});
 
SubMenu.contextTypes = {
  mode: _propTypes2['default'].string,
  level: _propTypes2['default'].number,
  theme: _propTypes2['default'].string,
  prefixCls: _propTypes2['default'].string,
  lineClamp: _propTypes2['default'].number
};
 
exports['default'] = SubMenu;
module.exports = exports['default'];