UNPKG

element-plus

Version:

A Component Library for Vue3.0

129 lines (121 loc) 3.83 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var ElPopper = require('../el-popper'); var constants = require('../utils/constants'); var throwError = require('../utils/error'); var vnode = require('../utils/vnode'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var ElPopper__default = /*#__PURE__*/_interopDefaultLegacy(ElPopper); var throwError__default = /*#__PURE__*/_interopDefaultLegacy(throwError); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var Tooltip = vue.defineComponent({ name: "ElTooltip", components: { ElPopper: ElPopper__default['default'] }, props: __spreadProps(__spreadValues({}, ElPopper.defaultProps), { manual: { type: Boolean, default: false }, modelValue: { type: Boolean, validator: (val) => { return typeof val === "boolean"; }, default: void 0 }, openDelay: { type: Number, default: 0 }, visibleArrow: { type: Boolean, default: true }, tabindex: { type: [String, Number], default: "0" } }), emits: [constants.UPDATE_MODEL_EVENT], setup(props, ctx) { if (props.manual && typeof props.modelValue === "undefined") { throwError__default['default']("[ElTooltip]", "You need to pass a v-model to el-tooltip when `manual` is true"); } const popper = vue.ref(null); const onUpdateVisible = (val) => { ctx.emit(constants.UPDATE_MODEL_EVENT, val); }; const updatePopper = () => { return popper.value.update(); }; return { popper, onUpdateVisible, updatePopper }; }, render() { const { $slots, content, manual, openDelay, onUpdateVisible, showAfter, visibleArrow, modelValue, tabindex } = this; const throwErrorTip = () => { throwError__default['default']("[ElTooltip]", "you need to provide a valid default slot."); }; const popper = vue.h(ElPopper__default['default'], __spreadProps(__spreadValues({}, Object.keys(ElPopper.defaultProps).reduce((result, key) => { return __spreadProps(__spreadValues({}, result), { [key]: this[key] }); }, {})), { ref: "popper", manualMode: manual, showAfter: openDelay || showAfter, showArrow: visibleArrow, visible: modelValue, "onUpdate:visible": onUpdateVisible }), { default: () => $slots.content ? $slots.content() : content, trigger: () => { if ($slots.default) { const firstVnode = vnode.getFirstValidNode($slots.default(), 1); if (!firstVnode) throwErrorTip(); return vue.cloneVNode(firstVnode, { tabindex }, true); } throwErrorTip(); } }); return popper; } }); Tooltip.install = (app) => { app.component(Tooltip.name, Tooltip); }; const _Tooltip = Tooltip; exports.default = _Tooltip;