popover2.js 4.2 KB

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