@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
136 lines (117 loc) • 5.13 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = require("vue");
var _tslib = require("tslib");
var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
var _vcTrigger = _interopRequireDefault(require("../vc-trigger"));
var _placements = require("./placements");
var _Content = _interopRequireDefault(require("./Content"));
var _propsUtil = require("../_util/props-util");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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); }
function noop() {}
var _default2 = (0, _vue.defineComponent)({
name: 'Tooltip',
inheritAttrs: false,
props: {
trigger: _vueTypes.default.any.def(['hover']),
defaultVisible: _vueTypes.default.looseBool,
visible: _vueTypes.default.looseBool,
placement: _vueTypes.default.string.def('right'),
transitionName: _vueTypes.default.oneOfType([_vueTypes.default.string, _vueTypes.default.object]),
animation: _vueTypes.default.any,
afterVisibleChange: _vueTypes.default.func.def(function () {}),
overlay: _vueTypes.default.any,
overlayStyle: _vueTypes.default.object,
overlayClassName: _vueTypes.default.string,
prefixCls: _vueTypes.default.string.def('rc-tooltip'),
mouseEnterDelay: _vueTypes.default.number.def(0),
mouseLeaveDelay: _vueTypes.default.number.def(0.1),
getTooltipContainer: _vueTypes.default.func,
destroyTooltipOnHide: _vueTypes.default.looseBool.def(false),
align: _vueTypes.default.object.def(function () {
return {};
}),
arrowContent: _vueTypes.default.any.def(null),
tipId: _vueTypes.default.string,
builtinPlacements: _vueTypes.default.object,
overlayInnerStyle: _vueTypes.default.style
},
methods: {
getPopupElement: function getPopupElement() {
var _this$$props = this.$props,
prefixCls = _this$$props.prefixCls,
tipId = _this$$props.tipId,
overlayInnerStyle = _this$$props.overlayInnerStyle;
return [(0, _vue.createVNode)("div", {
"class": "".concat(prefixCls, "-arrow"),
"key": "arrow"
}, [(0, _propsUtil.getComponent)(this, 'arrowContent')]), (0, _vue.createVNode)(_Content.default, {
"key": "content",
"trigger": this.$refs.trigger,
"prefixCls": prefixCls,
"id": tipId,
"overlay": (0, _propsUtil.getComponent)(this, 'overlay'),
"overlayInnerStyle": overlayInnerStyle
}, null)];
},
getPopupDomNode: function getPopupDomNode() {
return this.$refs.trigger.getPopupDomNode();
}
},
render: function render(h) {
var _this = this;
var _a = (0, _propsUtil.getOptionProps)(this),
overlayClassName = _a.overlayClassName,
trigger = _a.trigger,
mouseEnterDelay = _a.mouseEnterDelay,
mouseLeaveDelay = _a.mouseLeaveDelay,
overlayStyle = _a.overlayStyle,
prefixCls = _a.prefixCls,
afterVisibleChange = _a.afterVisibleChange,
transitionName = _a.transitionName,
animation = _a.animation,
placement = _a.placement,
align = _a.align,
destroyTooltipOnHide = _a.destroyTooltipOnHide,
defaultVisible = _a.defaultVisible,
getTooltipContainer = _a.getTooltipContainer,
restProps = (0, _tslib.__rest)(_a, ["overlayClassName", "trigger", "mouseEnterDelay", "mouseLeaveDelay", "overlayStyle", "prefixCls", "afterVisibleChange", "transitionName", "animation", "placement", "align", "destroyTooltipOnHide", "defaultVisible", "getTooltipContainer"]);
var extraProps = _extends({}, restProps);
if ((0, _propsUtil.hasProp)(this, 'visible')) {
extraProps.popupVisible = this.$props.visible;
}
var $attrs = this.$attrs;
var triggerProps = _extends(_extends(_extends({
popupClassName: overlayClassName,
prefixCls: prefixCls,
action: trigger,
builtinPlacements: _placements.placements,
popupPlacement: placement,
popupAlign: align,
getPopupContainer: getTooltipContainer,
afterPopupVisibleChange: afterVisibleChange,
popupTransitionName: transitionName,
popupAnimation: animation,
defaultPopupVisible: defaultVisible,
destroyPopupOnHide: destroyTooltipOnHide,
mouseLeaveDelay: mouseLeaveDelay,
popupStyle: overlayStyle,
mouseEnterDelay: mouseEnterDelay
}, extraProps), $attrs), {
onPopupVisibleChange: $attrs.onVisibleChange || noop,
onPopupAlign: $attrs.onPopupAlign || noop,
ref: 'trigger',
popup: this.getPopupElement()
});
return (0, _vue.createVNode)(_vcTrigger.default, triggerProps, {
default: function _default() {
return [(0, _propsUtil.getSlot)(_this)[0]];
}
});
}
});
exports.default = _default2;