SubMenu.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _extends2 = require('babel-runtime/helpers/extends');
  6. var _extends3 = _interopRequireDefault(_extends2);
  7. var _vcMenu = require('../vc-menu');
  8. var _propsUtil = require('../_util/props-util');
  9. var _classnames = require('classnames');
  10. var _classnames2 = _interopRequireDefault(_classnames);
  11. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  12. exports['default'] = {
  13. name: 'ASubMenu',
  14. isSubMenu: true,
  15. props: (0, _extends3['default'])({}, _vcMenu.SubMenu.props),
  16. inject: {
  17. menuPropsContext: { 'default': function _default() {
  18. return {};
  19. } }
  20. },
  21. methods: {
  22. onKeyDown: function onKeyDown(e) {
  23. this.$refs.subMenu.onKeyDown(e);
  24. }
  25. },
  26. render: function render() {
  27. var h = arguments[0];
  28. var $slots = this.$slots,
  29. $scopedSlots = this.$scopedSlots;
  30. var _$props = this.$props,
  31. rootPrefixCls = _$props.rootPrefixCls,
  32. popupClassName = _$props.popupClassName;
  33. var antdMenuTheme = this.menuPropsContext.theme;
  34. var props = {
  35. props: (0, _extends3['default'])({}, this.$props, {
  36. popupClassName: (0, _classnames2['default'])(rootPrefixCls + '-' + antdMenuTheme, popupClassName)
  37. }),
  38. ref: 'subMenu',
  39. on: (0, _propsUtil.getListeners)(this),
  40. scopedSlots: $scopedSlots
  41. };
  42. var slotsKey = Object.keys($slots);
  43. return h(
  44. _vcMenu.SubMenu,
  45. props,
  46. [slotsKey.length ? slotsKey.map(function (name) {
  47. return h(
  48. 'template',
  49. { slot: name },
  50. [$slots[name]]
  51. );
  52. }) : null]
  53. );
  54. }
  55. };