UNPKG

hongluan-ui

Version:
132 lines (129 loc) 4.71 kB
import { defineComponent, ref, computed, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue'; import { HlTooltip } from '../../tooltip/index.mjs'; import '../../popper/index.mjs'; import '../../../utils/index.mjs'; import '../../../hooks/index.mjs'; import { popoverProps, popoverEmits } from './popover.mjs'; import { useNamespace } from '../../../hooks/use-namespace/index.mjs'; import { isString } from '@vue/shared'; import { useDeprecateAppendToBody } from '../../popper/src/deprecation.mjs'; const updateEventKeyRaw = `onUpdate:visible`; const __default__ = defineComponent({ name: "Popover", inheritAttrs: false }); const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, props: popoverProps, emits: popoverEmits, setup(__props, { expose, emit }) { const props = __props; const { namespace } = useNamespace("popover"); const tooltipRef = ref(); const popperRef = computed(() => { var _a; return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef; }); const width = computed(() => { if (isString(props.width)) { return props.width; } return `${props.width}px`; }); const style = computed(() => { return [ { width: width.value }, props.popperStyle ]; }); const kls = computed(() => { return [namespace.value, props.popperClass, { "plain": !!props.content }, props.tooltip ? "tooltip" : ""]; }); const gpuAcceleration = computed(() => { return props.transition === "fade"; }); const finalTrigger = computed(() => { return props.tooltip ? "hover" : props.trigger; }); const { compatTeleported } = useDeprecateAppendToBody("Popover", "appendToBody"); const onUpdateVisible = computed(() => { return props[updateEventKeyRaw]; }); const hide = () => { var _a; (_a = tooltipRef.value) == null ? void 0 : _a.hide(); }; const beforeEnter = () => { emit("before-enter"); }; const beforeLeave = () => { emit("before-leave"); }; const afterEnter = () => { emit("after-enter"); }; const afterLeave = () => { emit("update:visible", false); emit("after-leave"); }; expose({ popperRef, hide }); return (_ctx, _cache) => { return openBlock(), createBlock(unref(HlTooltip), mergeProps({ ref_key: "tooltipRef", ref: tooltipRef }, _ctx.$attrs, { trigger: unref(finalTrigger), placement: _ctx.placement, disabled: _ctx.disabled, visible: _ctx.visible, transition: _ctx.transition, "popper-options": _ctx.popperOptions, "outside-ignore": _ctx.outsideIgnore, tabindex: _ctx.tabindex, "append-to-body": _ctx.appendToBody, content: _ctx.content, offset: _ctx.offset, "show-after": _ctx.showAfter, "hide-after": _ctx.hideAfter, "auto-close": _ctx.autoClose, "show-arrow": _ctx.showArrow, "aria-label": _ctx.title, effect: _ctx.effect, enterable: _ctx.enterable, "popper-class": unref(kls), "popper-style": unref(style), teleported: unref(compatTeleported), persistent: _ctx.persistent, "gpu-acceleration": unref(gpuAcceleration), "trigger-keys": _ctx.triggerKeys, "onUpdate:visible": unref(onUpdateVisible), onBeforeShow: beforeEnter, onBeforeHide: beforeLeave, onShow: afterEnter, onHide: afterLeave }), { content: withCtx(() => [ _ctx.title ? (openBlock(), createElementBlock("div", { key: 0, class: "popover-title", role: "title" }, toDisplayString(_ctx.title), 1)) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default", {}, () => [ createTextVNode(toDisplayString(_ctx.content), 1) ]) ]), default: withCtx(() => [ _ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true) ]), _: 3 }, 16, ["trigger", "placement", "disabled", "visible", "transition", "popper-options", "outside-ignore", "tabindex", "append-to-body", "content", "offset", "show-after", "hide-after", "auto-close", "show-arrow", "aria-label", "effect", "enterable", "popper-class", "popper-style", "teleported", "persistent", "gpu-acceleration", "trigger-keys", "onUpdate:visible"]); }; } }); export { _sfc_main as default }; //# sourceMappingURL=popover2.mjs.map