{"version":3,"file":"content.vue2.mjs","sources":["../../../../../packages/components/popper/src/content.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n  name: 'ElPopperContent'\n});\n</script>\n<template>\n  <div\n    ref=\"popperContentRef\"\n    :style=\"contentStyle\"\n    :class=\"contentClass\"\n    role=\"tooltip\"\n    @mouseenter=\"emit('mouseenter', $event)\"\n    @mouseleave=\"emit('mouseleave', $event)\"\n  >\n    <slot />\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n  computed,\n  ref,\n  inject,\n  provide,\n  unref,\n  onMounted,\n  watch,\n  onBeforeUnmount\n} from 'vue'\nimport { createPopper } from '@popperjs/core'\nimport { useZIndex, useNamespace } from '@element-ultra/hooks'\nimport { POPPER_INJECTION_KEY, POPPER_CONTENT_INJECTION_KEY } from './tokens'\nimport { usePopperContentProps } from './popper'\nimport { buildPopperOptions, unwrapMeasurableEl } from './utils'\n\n\n\nconst props = defineProps(usePopperContentProps)\n\nconst emit = defineEmits({\n  mouseenter: (e: MouseEvent) => true,\n  mouseleave: (e: MouseEvent) => true\n})\n\nconst { triggerRef, popperInstanceRef, contentRef } = inject(\n  POPPER_INJECTION_KEY,\n  undefined\n)!\nconst { nextZIndex } = useZIndex()\nconst ns = useNamespace('popper')\nconst popperContentRef = ref<HTMLElement | null>(null)\nconst arrowRef = ref<HTMLElement | null>(null)\nconst arrowOffset = ref<number>()\nprovide(POPPER_CONTENT_INJECTION_KEY, {\n  arrowRef,\n  arrowOffset\n})\nconst contentZIndex = ref(props.zIndex || nextZIndex())\n\nconst contentStyle = computed(() => {\n  return [\n    {\n      zIndex: unref(contentZIndex)\n    },\n    props.popperStyle || {}\n  ]\n})\n\nconst contentClass = computed(() => [\n  ns.b(),\n  ns.is('pure', props.pure),\n  ns.is(props.effect),\n  props.popperClass\n])\n\nconst createPopperInstance = ({ referenceEl, popperContentEl, arrowEl }) => {\n  const options = buildPopperOptions(props, {\n    arrowEl,\n    arrowOffset: unref(arrowOffset)\n  })\n\n  return createPopper(referenceEl, popperContentEl, options)\n}\n\nconst updatePopper = () => {\n  unref(popperInstanceRef)?.update()\n  contentZIndex.value = props.zIndex || nextZIndex()\n}\n\nonBeforeUnmount(() => {\n  let inst = popperInstanceRef.value\n\n  // TODO这里使用了一个移除操作来防止销毁时导致出现滚动条的bug\n  if (inst) {\n    let popper: HTMLElement | null = inst.state.elements.popper\n    popper.remove()\n    popper = null\n    inst.destroy()\n  }\n})\n\nonMounted(() => {\n  let updateHandle: ReturnType<typeof watch>\n\n  watch(\n    () => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef),\n    val => {\n      updateHandle?.()\n      if (val) {\n        popperInstanceRef.value?.destroy()\n        const popperContentEl = unref(popperContentRef)!\n        contentRef.value = popperContentEl\n        const arrowEl = unref(arrowRef)\n\n        const newInstance = createPopperInstance({\n          referenceEl: val,\n          popperContentEl: unref(popperContentRef)!,\n          arrowEl\n        })\n        popperInstanceRef.value = newInstance\n\n        updateHandle = watch(\n          () => val!.getBoundingClientRect(),\n          () => {\n            updatePopper()\n          },\n          {\n            immediate: true\n          }\n        )\n      } else {\n        popperInstanceRef.value = null\n      }\n    },\n    {\n      immediate: true\n    }\n  )\n\n  watch(\n    () =>\n      buildPopperOptions(props, {\n        arrowEl: unref(arrowRef),\n        arrowOffset: unref(arrowOffset)\n      }),\n    option => popperInstanceRef.value?.setOptions(option)\n  )\n})\n\ndefineExpose({\n  updatePopper,\n  popperContentRef: contentRef,\n  popperInstanceRef: popperInstanceRef\n})\n</script>\n"],"names":["__MACROS_defineComponent"],"mappings":"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"}