84f18e8bbdf03d28b7d1ab60583ceacaed30c04261cc4b7cb883e12915454588688cb50cd6ffc2f57faecbc019bc8b6c890d8d0474149a200626da2cd1f917 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue';
  2. import { ElTooltip } from '../../tooltip/index.mjs';
  3. import { popoverProps, popoverEmits } from './popover2.mjs';
  4. import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
  5. import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
  6. import { addUnit } from '../../../utils/dom/style.mjs';
  7. const updateEventKeyRaw = `onUpdate:visible`;
  8. const __default__ = defineComponent({
  9. name: "ElPopover"
  10. });
  11. const _sfc_main = /* @__PURE__ */ defineComponent({
  12. ...__default__,
  13. props: popoverProps,
  14. emits: popoverEmits,
  15. setup(__props, { expose, emit }) {
  16. const props = __props;
  17. const onUpdateVisible = computed(() => {
  18. return props[updateEventKeyRaw];
  19. });
  20. const ns = useNamespace("popover");
  21. const tooltipRef = ref();
  22. const popperRef = computed(() => {
  23. var _a;
  24. return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;
  25. });
  26. const style = computed(() => {
  27. return [
  28. {
  29. width: addUnit(props.width)
  30. },
  31. props.popperStyle
  32. ];
  33. });
  34. const kls = computed(() => {
  35. return [ns.b(), props.popperClass, { [ns.m("plain")]: !!props.content }];
  36. });
  37. const gpuAcceleration = computed(() => {
  38. return props.transition === `${ns.namespace.value}-fade-in-linear`;
  39. });
  40. const hide = () => {
  41. var _a;
  42. (_a = tooltipRef.value) == null ? void 0 : _a.hide();
  43. };
  44. const beforeEnter = () => {
  45. emit("before-enter");
  46. };
  47. const beforeLeave = () => {
  48. emit("before-leave");
  49. };
  50. const afterEnter = () => {
  51. emit("after-enter");
  52. };
  53. const afterLeave = () => {
  54. emit("update:visible", false);
  55. emit("after-leave");
  56. };
  57. expose({
  58. popperRef,
  59. hide
  60. });
  61. return (_ctx, _cache) => {
  62. return openBlock(), createBlock(unref(ElTooltip), mergeProps({
  63. ref_key: "tooltipRef",
  64. ref: tooltipRef
  65. }, _ctx.$attrs, {
  66. trigger: _ctx.trigger,
  67. "trigger-keys": _ctx.triggerKeys,
  68. placement: _ctx.placement,
  69. disabled: _ctx.disabled,
  70. visible: _ctx.visible,
  71. transition: _ctx.transition,
  72. "popper-options": _ctx.popperOptions,
  73. tabindex: _ctx.tabindex,
  74. content: _ctx.content,
  75. offset: _ctx.offset,
  76. "show-after": _ctx.showAfter,
  77. "hide-after": _ctx.hideAfter,
  78. "auto-close": _ctx.autoClose,
  79. "show-arrow": _ctx.showArrow,
  80. "aria-label": _ctx.title,
  81. effect: _ctx.effect,
  82. enterable: _ctx.enterable,
  83. "popper-class": unref(kls),
  84. "popper-style": unref(style),
  85. teleported: _ctx.teleported,
  86. "append-to": _ctx.appendTo,
  87. persistent: _ctx.persistent,
  88. "gpu-acceleration": unref(gpuAcceleration),
  89. "onUpdate:visible": unref(onUpdateVisible),
  90. onBeforeShow: beforeEnter,
  91. onBeforeHide: beforeLeave,
  92. onShow: afterEnter,
  93. onHide: afterLeave
  94. }), {
  95. content: withCtx(() => [
  96. _ctx.title ? (openBlock(), createElementBlock("div", {
  97. key: 0,
  98. class: normalizeClass(unref(ns).e("title")),
  99. role: "title"
  100. }, toDisplayString(_ctx.title), 3)) : createCommentVNode("v-if", true),
  101. renderSlot(_ctx.$slots, "default", {}, () => [
  102. createTextVNode(toDisplayString(_ctx.content), 1)
  103. ])
  104. ]),
  105. default: withCtx(() => [
  106. _ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)
  107. ]),
  108. _: 3
  109. }, 16, ["trigger", "trigger-keys", "placement", "disabled", "visible", "transition", "popper-options", "tabindex", "content", "offset", "show-after", "hide-after", "auto-close", "show-arrow", "aria-label", "effect", "enterable", "popper-class", "popper-style", "teleported", "append-to", "persistent", "gpu-acceleration", "onUpdate:visible"]);
  110. };
  111. }
  112. });
  113. var Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "popover.vue"]]);
  114. export { Popover as default };
  115. //# sourceMappingURL=popover.mjs.map