{"version":3,"file":"content.mjs","sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n  <teleport :disabled=\"!teleported\" :to=\"appendTo\">\n    <transition\n      :name=\"transition\"\n      @after-leave=\"onTransitionLeave\"\n      @before-enter=\"onBeforeEnter\"\n      @after-enter=\"onAfterShow\"\n      @before-leave=\"onBeforeLeave\"\n    >\n      <el-popper-content\n        v-if=\"shouldRender\"\n        v-show=\"shouldShow\"\n        ref=\"contentRef\"\n        v-bind=\"$attrs\"\n        :aria-hidden=\"ariaHidden\"\n        :boundaries-padding=\"boundariesPadding\"\n        :fallback-placements=\"fallbackPlacements\"\n        :gpu-acceleration=\"gpuAcceleration\"\n        :offset=\"offset\"\n        :placement=\"placement\"\n        :popper-options=\"popperOptions\"\n        :strategy=\"strategy\"\n        :effect=\"effect\"\n        :enterable=\"enterable\"\n        :pure=\"pure\"\n        :popper-class=\"popperClass\"\n        :popper-style=\"[popperStyle, contentStyle]\"\n        :reference-el=\"referenceEl\"\n        :visible=\"shouldShow\"\n        :z-index=\"zIndex\"\n        @mouseenter=\"onContentEnter\"\n        @mouseleave=\"onContentLeave\"\n      >\n        <!-- Workaround bug #6378 -->\n        <template v-if=\"!destroyed\">\n          <slot />\n          <el-visually-hidden :id=\"id\" role=\"tooltip\">\n            {{ ariaLabel }}\n          </el-visually-hidden>\n        </template>\n      </el-popper-content>\n    </transition>\n  </teleport>\n</template>\n\n<script lang=\"ts\">\nimport {\n  computed,\n  defineComponent,\n  inject,\n  onBeforeUnmount,\n  ref,\n  unref,\n  watch,\n} from 'vue'\nimport { onClickOutside } from '@vueuse/core'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport { ElVisuallyHidden } from '@element-plus/components/visual-hidden'\nimport { composeEventHandlers } from '@element-plus/utils'\nimport { useEscapeKeydown } from '@element-plus/hooks'\n\nimport { useTooltipContentProps } from './tooltip'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\n\nexport default defineComponent({\n  name: 'ElTooltipContent',\n  components: {\n    ElPopperContent,\n    ElVisuallyHidden,\n  },\n  inheritAttrs: false,\n  props: useTooltipContentProps,\n  setup(props) {\n    const contentRef = ref<InstanceType<typeof ElPopperContent> | null>(null)\n    const intermediateOpen = ref(false)\n    const entering = ref(false)\n    const leaving = ref(false)\n    const destroyed = ref(false)\n    const {\n      controlled,\n      id,\n      open,\n      trigger,\n      onClose,\n      onOpen,\n      onShow,\n      onHide,\n      onBeforeShow,\n      onBeforeHide,\n    } = inject(TOOLTIP_INJECTION_KEY, undefined)!\n    const persistentRef = computed(() => {\n      // For testing, we would always want the content to be rendered\n      // to the DOM, so we need to return true here.\n      if (process.env.NODE_ENV === 'test') {\n        return true\n      }\n      return props.persistent\n    })\n\n    onBeforeUnmount(() => {\n      destroyed.value = true\n    })\n\n    const shouldRender = computed(() => {\n      return unref(persistentRef) ? true : unref(open)\n    })\n\n    const shouldShow = computed(() => {\n      return props.disabled ? false : unref(open)\n    })\n\n    const contentStyle = computed(() => (props.style ?? {}) as any)\n\n    const ariaHidden = computed(() => !unref(open))\n\n    useEscapeKeydown(onClose)\n\n    const onTransitionLeave = () => {\n      onHide()\n    }\n\n    const stopWhenControlled = () => {\n      if (unref(controlled)) return true\n    }\n\n    const onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n      if (props.enterable && unref(trigger) === 'hover') {\n        onOpen()\n      }\n    })\n\n    const onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n      if (unref(trigger) === 'hover') {\n        onClose()\n      }\n    })\n\n    const onBeforeEnter = () => {\n      contentRef.value?.updatePopper?.()\n      onBeforeShow?.()\n    }\n\n    const onBeforeLeave = () => {\n      onBeforeHide?.()\n    }\n\n    const onAfterShow = () => {\n      onShow()\n    }\n\n    let stopHandle: ReturnType<typeof onClickOutside>\n\n    watch(\n      () => unref(open),\n      (val) => {\n        if (val) {\n          stopHandle = onClickOutside(\n            computed(() => {\n              return contentRef.value?.popperContentRef\n            }),\n            () => {\n              if (unref(controlled)) return\n              const $trigger = unref(trigger)\n              if ($trigger !== 'hover') {\n                onClose()\n              }\n            }\n          )\n        } else {\n          stopHandle?.()\n        }\n      },\n      {\n        flush: 'post',\n      }\n    )\n\n    return {\n      ariaHidden,\n      entering,\n      leaving,\n      id,\n      intermediateOpen,\n      contentStyle,\n      contentRef,\n      destroyed,\n      shouldRender,\n      shouldShow,\n      open,\n      onAfterShow,\n      onBeforeEnter,\n      onBeforeLeave,\n      onContentEnter,\n      onContentLeave,\n      onTransitionLeave,\n    }\n  },\n})\n</script>\n"],"names":["ElPopperContent","_resolveComponent","_openBlock","_createBlock","_Teleport","_createVNode","_Transition","_withCtx","_withDirectives","_mergeProps","_createCommentVNode","_createElementBlock","_Fragment"],"mappings":";;;;;;;;;;;;;;AAgEA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,kBAAA;AAAA,EACN,UAAY,EAAA;AAAA,qBACVA,WAAA;AAAA,IACA,gBAAA;AAAA,GAAA;AAAA,EAEF,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA,sBAAA;AAAA,EACP,MAAM,KAAO,EAAA;AACX,IAAA,MAAM,aAAa,GAAiD,CAAA,IAAA,CAAA,CAAA;AACpE,IAAA,MAAM,mBAAmB,GAAI,CAAA,KAAA,CAAA,CAAA;AAC7B,IAAA,MAAM,WAAW,GAAI,CAAA,KAAA,CAAA,CAAA;AACrB,IAAA,MAAM,UAAU,GAAI,CAAA,KAAA,CAAA,CAAA;AACpB,IAAA,MAAM,YAAY,GAAI,CAAA,KAAA,CAAA,CAAA;AACtB,IAAM,MAAA;AAAA,MACJ,UAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,KAAA,GACE,OAAO,qBAAuB,EAAA,KAAA,CAAA,CAAA,CAAA;AAClC,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AAGnC,MAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,MAAQ,EAAA;AACnC,QAAO,OAAA,IAAA,CAAA;AAAA,OAAA;AAET,MAAA,OAAO,KAAM,CAAA,UAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGf,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,SAAA,CAAU,KAAQ,GAAA,IAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGpB,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM;AAClC,MAAO,OAAA,KAAA,CAAM,aAAiB,CAAA,GAAA,IAAA,GAAO,KAAM,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAG7C,IAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,MAAO,OAAA,KAAA,CAAM,QAAW,GAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGxC,IAAA,MAAM,YAAe,GAAA,QAAA,CAAS,MAAO;AAErC,MAAA,IAAM,EAAa,CAAA;AAEnB,MAAiB,OAAA,CAAA,EAAA,GAAA,KAAA,CAAA,KAAA,KAAA,IAAA,GAAA,EAAA,GAAA,EAAA,CAAA;AAEjB,KAAA,CAAA,CAAA;AACE,IAAA,MAAA,UAAA,GAAA,QAAA,CAAA,MAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,IAAA,gBAAA,CAAA,OAAA,CAAA,CAAA;AAGF,IAAA,MAAM,0BAA2B;AAC/B,MAAA,MAAU,EAAA,CAAA;AAAa,KAAO,CAAA;AAAA,IAAA,MAAA,kBAAA,GAAA,MAAA;AAGhC,MAAM,IAAA,KAAA,CAAA,UAAA,CAAiB;AACrB,QAAA,OAAU,IAAA,CAAA;AACR,KAAA,CAAA;AAAA,IAAA,MAAA,cAAA,GAAA,oBAAA,CAAA,kBAAA,EAAA,MAAA;AAAA,MAAA,IAAA,KAAA,CAAA,SAAA,IAAA,KAAA,CAAA,OAAA,CAAA,KAAA,OAAA,EAAA;AAIJ,QAAM,MAAA,EAAA,CAAA;AACJ,OAAI;AACF,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,cAAA,GAAA,oBAAA,CAAA,kBAAA,EAAA,MAAA;AAAA,MAAA,IAAA,KAAA,CAAA,OAAA,CAAA,KAAA,OAAA,EAAA;AAIJ,QAAA;AACE,OAAA;AACA,KAAA,CAAA,CAAA;AAAA,IAAA,MAAA,aAAA,GAAA,MAAA;AAGF,MAAA,IAAM;AACJ,MAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAAA,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,EAAA,CAAA;AAGF,KAAA,CAAA;AACE,IAAA,MAAA,aAAA,GAAA,MAAA;AAAA,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,EAAA,CAAA;AAGF,KAAI,CAAA;AAEJ,IAAA,MACE,WAAM,GACN,MAAC;AACC,MAAA,MAAS,EAAA,CAAA;AACP,KAAa,CAAA;AAET,IAAA,IAAA;AAAyB,IAAA,KAAA,CAAA,MAErB,KAAA,CAAA,IAAA,CAAA,EAAA,CAAA,GAAA,KAAA;AACJ,MAAA,IAAA,GAAA,EAAU;AAAa,QAAA,UAAA,GAAA,cAAA,CAAA,QAAA,CAAA,MAAA;AACvB,UAAA,IAAA,EAAM;AACN,UAAA,uBAA0B,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAA,CAAA;AACxB,SAAA,CAAA,EAAA,MAAA;AAAA,UAAA,IAAA,KAAA,CAAA,UAAA,CAAA;AAAA,YAAA,OAAA;AAAA,UAID,MAAA,QAAA,GAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACL,UAAA,IAAA,QAAA,KAAA,OAAA,EAAA;AAAA,YAAA,OAAA,EAAA,CAAA;AAAA,WAGJ;AAAA,SACS,CAAA,CAAA;AAAA,OAAA,MAAA;AAIX,QAAO,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,EAAA,CAAA;AAAA,OACL;AAAA,KACA,EAAA;AAAA,MACA,KAAA,EAAA,MAAA;AAAA,KACA,CAAA,CAAA;AAAA,IACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,EAAA;AAAA,MACA,gBAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MAAA,aAAA;AAAA,MAAA,aAAA;AAAA,MAAA,cAAA;;;;;;AAjMkB,SAAiB,WAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AAAA,EAAA,MAAA,6BAAA,GAAAC,gBAAA,CAAA,oBAAA,CAAA,CAAA;QAwCxB,4BAAA,GAAAA,gBAAA,CAAA,mBAAA,CAAA,CAAA;AAAA,EAAA,OAtCJC,SAAA,EAAA,EAAAC,WAAA,CAAAC,QAAA,EAAA;AAAA,IAAA,QACO,EAAA,CAAA,IAAA,CAAA,UAAA;AAAA,IAAA,EACb,EAAc,IAAA,CAAA,QAAA;AAAA,GAAA,EAAA;AACD,IAAAC,WACC,CAAAC,UAAA,EAAA;AAAA,MAAA,IAAA,EAAA,IAAA,CAAA,UAAA;wBAEf,CA+BoB,iBAAA;AAAA,MA9BZ,aAAA,EAAA,IAAA,CAAA,aAAA;AA8BY,MAAA,YAAA,EAAA,IAAA,CAAA,WAAA;mBA5Bd,EAAA,IAAA,CAAA,aAAA;AAAA,KAAA,EAAA;AACU,MAAA,OACA,EAAAC,OAAA,CAAA,MAAA;AAAA,QAAA,IACO,CAAA,YAAA,GAAAC,cAAA,EAAAN,SAAA,EAAA,EAAAC,WAAA,CAAA,4BAAA,EAAAM,UAAA,CAAA;AAAA,UACpB,GAAqB,EAAA,CAAA;AAAA,UACrB,GAAkB,EAAA,YAAA;AAAA,SAAA,EACV,IAAA,CAAA,MAAA,EAAA;AAAA,UACR,aAAW,EAAA,IAAA,CAAA,UAAA;AAAA,UACX,oBAAgB,EAAA,IAAA,CAAA,iBAAA;AAAA,UAChB,qBAAU,EAAA,IAAA,CAAA,kBAAA;AAAA,UACV,kBAAQ,EAAA,IAAA,CAAA,eAAA;AAAA,UACR,MAAW,EAAA,IAAA,CAAA,MAAA;AAAA,UACX,SAAM,EAAA,IAAA,CAAA,SAAA;AAAA,UACN,gBAAc,EAAA,IAAA,CAAA,aAAA;AAAA,UACd,QAAA,EAAA,IAAA,CAAA,QAA4B;AAAA,UAC5B,MAAc,EAAA,IAAA,CAAA,MAAA;AAAA,UACd,SAAS,EAAA,IAAA,CAAA,SAAA;AAAA,UACT,IAAS,EAAA,IAAA,CAAA,IAAA;AAAA,UACT,cAAY,EAAA,IAAA,CAAA,WAAA;AAAA,UACZ,cAAY,EAAA,CAAA,IAAA,CAAA,WAAA,EAAA,IAAA,CAAA,YAAA,CAAA;AAAA,UAAA,cAAA,EAAA,IAAA,CAAA,WAAA;kCAEgB;AAAA,UAA7B,SAAA,EAAA,IAAA,CAAA,MAAA;AAAA,UAAA;AAMW,UAAA,YAJD,EAAA,IAAA,CAAA,cAAA;AAAA,SAAA,CAAA,EAAA;AAGa,UAAA,OAFI,EAAAF,OAAA,CAAA,MAAA;AAAA,YAAAG,kBAAS,CAAA,wBAAA,CAAA;AAAA,YAAA,CAAA,IAAA,CAAA,SAAA,IAAAR,SAAA,EAAA,EAAAS,kBAAA,CAAAC,QAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAAA;oCACjB,EAAA,SAAA,CAAA;AAAA,cAAAP,WAAA,CAAA,6BAAH,EAAA;AAAA,gBAAA,EAAA,EAAA,IAAA,CAAA,EAAA;AAAA,gBAAA,IAAA,EAAA,SAAA;;;;;;AA1BR,eAAA,EAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA;AAAA,aAAA,EAAA,EAAA,CAAA,IAAAK,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;"}