1 | import { createVNode as _createVNode } 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 | var __rest = this && this.__rest || function (s, e) {
|
6 | var t = {};
|
7 |
|
8 | for (var p in s) {
|
9 | if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
10 | }
|
11 |
|
12 | if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
13 | if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
14 | }
|
15 | return t;
|
16 | };
|
17 |
|
18 | import PropTypes from '../_util/vue-types';
|
19 | import Trigger from '../vc-trigger';
|
20 | import { placements } from './placements';
|
21 | import Content from './Content';
|
22 | import { hasProp, getComponent, getOptionProps, getSlot } from '../_util/props-util';
|
23 | import { defineComponent } from 'vue';
|
24 |
|
25 | function noop() {}
|
26 |
|
27 | export default defineComponent({
|
28 | name: 'Tooltip',
|
29 | inheritAttrs: false,
|
30 | props: {
|
31 | trigger: PropTypes.any.def(['hover']),
|
32 | defaultVisible: PropTypes.looseBool,
|
33 | visible: PropTypes.looseBool,
|
34 | placement: PropTypes.string.def('right'),
|
35 | transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
|
36 | animation: PropTypes.any,
|
37 | afterVisibleChange: PropTypes.func.def(function () {}),
|
38 | overlay: PropTypes.any,
|
39 | overlayStyle: PropTypes.object,
|
40 | overlayClassName: PropTypes.string,
|
41 | prefixCls: PropTypes.string.def('rc-tooltip'),
|
42 | mouseEnterDelay: PropTypes.number.def(0),
|
43 | mouseLeaveDelay: PropTypes.number.def(0.1),
|
44 | getTooltipContainer: PropTypes.func,
|
45 | destroyTooltipOnHide: PropTypes.looseBool.def(false),
|
46 | align: PropTypes.object.def(function () {
|
47 | return {};
|
48 | }),
|
49 | arrowContent: PropTypes.any.def(null),
|
50 | tipId: PropTypes.string,
|
51 | builtinPlacements: PropTypes.object,
|
52 | overlayInnerStyle: PropTypes.style
|
53 | },
|
54 | methods: {
|
55 | getPopupElement: function getPopupElement() {
|
56 | var _this$$props = this.$props,
|
57 | prefixCls = _this$$props.prefixCls,
|
58 | tipId = _this$$props.tipId,
|
59 | overlayInnerStyle = _this$$props.overlayInnerStyle;
|
60 | return [_createVNode("div", {
|
61 | "class": "".concat(prefixCls, "-arrow"),
|
62 | "key": "arrow"
|
63 | }, [getComponent(this, 'arrowContent')]), _createVNode(Content, {
|
64 | "key": "content",
|
65 | "trigger": this.$refs.trigger,
|
66 | "prefixCls": prefixCls,
|
67 | "id": tipId,
|
68 | "overlay": getComponent(this, 'overlay'),
|
69 | "overlayInnerStyle": overlayInnerStyle
|
70 | }, null)];
|
71 | },
|
72 | getPopupDomNode: function getPopupDomNode() {
|
73 | return this.$refs.trigger.getPopupDomNode();
|
74 | }
|
75 | },
|
76 | render: function render(h) {
|
77 | var _this = this;
|
78 |
|
79 | var _a = getOptionProps(this),
|
80 | overlayClassName = _a.overlayClassName,
|
81 | trigger = _a.trigger,
|
82 | mouseEnterDelay = _a.mouseEnterDelay,
|
83 | mouseLeaveDelay = _a.mouseLeaveDelay,
|
84 | overlayStyle = _a.overlayStyle,
|
85 | prefixCls = _a.prefixCls,
|
86 | afterVisibleChange = _a.afterVisibleChange,
|
87 | transitionName = _a.transitionName,
|
88 | animation = _a.animation,
|
89 | placement = _a.placement,
|
90 | align = _a.align,
|
91 | destroyTooltipOnHide = _a.destroyTooltipOnHide,
|
92 | defaultVisible = _a.defaultVisible,
|
93 | getTooltipContainer = _a.getTooltipContainer,
|
94 | restProps = __rest(_a, ["overlayClassName", "trigger", "mouseEnterDelay", "mouseLeaveDelay", "overlayStyle", "prefixCls", "afterVisibleChange", "transitionName", "animation", "placement", "align", "destroyTooltipOnHide", "defaultVisible", "getTooltipContainer"]);
|
95 |
|
96 | var extraProps = _extends({}, restProps);
|
97 |
|
98 | if (hasProp(this, 'visible')) {
|
99 | extraProps.popupVisible = this.$props.visible;
|
100 | }
|
101 |
|
102 | var $attrs = this.$attrs;
|
103 |
|
104 | var triggerProps = _extends(_extends(_extends({
|
105 | popupClassName: overlayClassName,
|
106 | prefixCls: prefixCls,
|
107 | action: trigger,
|
108 | builtinPlacements: placements,
|
109 | popupPlacement: placement,
|
110 | popupAlign: align,
|
111 | getPopupContainer: getTooltipContainer,
|
112 | afterPopupVisibleChange: afterVisibleChange,
|
113 | popupTransitionName: transitionName,
|
114 | popupAnimation: animation,
|
115 | defaultPopupVisible: defaultVisible,
|
116 | destroyPopupOnHide: destroyTooltipOnHide,
|
117 | mouseLeaveDelay: mouseLeaveDelay,
|
118 | popupStyle: overlayStyle,
|
119 | mouseEnterDelay: mouseEnterDelay
|
120 | }, extraProps), $attrs), {
|
121 | onPopupVisibleChange: $attrs.onVisibleChange || noop,
|
122 | onPopupAlign: $attrs.onPopupAlign || noop,
|
123 | ref: 'trigger',
|
124 | popup: this.getPopupElement()
|
125 | });
|
126 |
|
127 | return _createVNode(Trigger, triggerProps, {
|
128 | default: function _default() {
|
129 | return [getSlot(_this)[0]];
|
130 | }
|
131 | });
|
132 | }
|
133 | }); |
\ | No newline at end of file |