1 | import { createVNode as _createVNode, isVNode as _isVNode } from "vue";
|
2 |
|
3 | function _extends() { _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; }; return _extends.apply(this, arguments); }
|
4 |
|
5 | import { defineComponent, inject } from 'vue';
|
6 | import { Item, itemProps } from '../vc-menu';
|
7 | import { getOptionProps, getSlot } from '../_util/props-util';
|
8 | import Tooltip from '../tooltip';
|
9 | import { injectExtraPropsKey } from '../vc-menu/FunctionProvider';
|
10 |
|
11 | function _isSlot(s) {
|
12 | return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !_isVNode(s);
|
13 | }
|
14 |
|
15 | export default defineComponent({
|
16 | name: 'MenuItem',
|
17 | inheritAttrs: false,
|
18 | props: itemProps,
|
19 | isMenuItem: true,
|
20 | setup: function setup() {
|
21 | return {
|
22 | getInlineCollapsed: inject('getInlineCollapsed', function () {
|
23 | return false;
|
24 | }),
|
25 | layoutSiderContext: inject('layoutSiderContext', {}),
|
26 | injectExtraProps: inject(injectExtraPropsKey, function () {
|
27 | return {};
|
28 | })
|
29 | };
|
30 | },
|
31 | methods: {
|
32 | onKeyDown: function onKeyDown(e) {
|
33 | this.$refs.menuItem.onKeyDown(e);
|
34 | }
|
35 | },
|
36 | render: function render() {
|
37 | var props = getOptionProps(this);
|
38 |
|
39 | var _Object$assign = _extends(_extends({}, props), this.injectExtraProps),
|
40 | level = _Object$assign.level,
|
41 | title = _Object$assign.title,
|
42 | rootPrefixCls = _Object$assign.rootPrefixCls;
|
43 |
|
44 | var getInlineCollapsed = this.getInlineCollapsed,
|
45 | attrs = this.$attrs;
|
46 | var inlineCollapsed = getInlineCollapsed();
|
47 | var tooltipTitle = title;
|
48 | var children = getSlot(this);
|
49 |
|
50 | if (typeof title === 'undefined') {
|
51 | tooltipTitle = level === 1 ? children : '';
|
52 | } else if (title === false) {
|
53 | tooltipTitle = '';
|
54 | }
|
55 |
|
56 | var tooltipProps = {
|
57 | title: tooltipTitle
|
58 | };
|
59 | var siderCollapsed = this.layoutSiderContext.sCollapsed;
|
60 |
|
61 | if (!siderCollapsed && !inlineCollapsed) {
|
62 | tooltipProps.title = null;
|
63 |
|
64 |
|
65 | tooltipProps.visible = false;
|
66 | }
|
67 |
|
68 | var itemProps = _extends(_extends(_extends(_extends({}, props), {
|
69 | title: title
|
70 | }), attrs), {
|
71 | ref: 'menuItem'
|
72 | });
|
73 |
|
74 | var toolTipProps = _extends(_extends({}, tooltipProps), {
|
75 | placement: 'right',
|
76 | overlayClassName: "".concat(rootPrefixCls, "-inline-collapsed-tooltip")
|
77 | });
|
78 |
|
79 | var item = _createVNode(Item, itemProps, _isSlot(children) ? children : {
|
80 | default: function _default() {
|
81 | return [children];
|
82 | }
|
83 | });
|
84 |
|
85 | return _createVNode(Tooltip, toolTipProps, _isSlot(item) ? item : {
|
86 | default: function _default() {
|
87 | return [item];
|
88 | }
|
89 | });
|
90 | }
|
91 | }); |
\ | No newline at end of file |