{"version":3,"file":"arrow.vue.mjs","sources":["../../../../../packages/components/popper/src/arrow.vue"],"sourcesContent":["<template>\n  <span ref=\"arrowRef\" :class=\"ns.e('arrow')\" data-popper-arrow=\"\" />\n</template>\n\n<script lang=\"ts\">\nimport {\n  defineComponent,\n  inject,\n  ref,\n  onMounted,\n  onBeforeUnmount,\n  watch,\n  unref,\n} from 'vue'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { usePopperArrowProps } from './popper'\nimport { POPPER_CONTENT_INJECTION_KEY } from './tokens'\n\nexport default defineComponent({\n  name: 'ElPopperArrow',\n  props: usePopperArrowProps,\n  setup(props) {\n    const ns = useNamespace('popper')\n    const arrowRef = ref<HTMLSpanElement | null>(null)\n    const popperContentInjection = inject(\n      POPPER_CONTENT_INJECTION_KEY,\n      undefined\n    )!\n\n    watch(\n      () => props.arrowOffset,\n      (val) => {\n        popperContentInjection.arrowOffset.value = val\n      }\n    )\n\n    onMounted(() => {\n      popperContentInjection.arrowRef.value = unref(arrowRef)\n    })\n\n    onBeforeUnmount(() => {\n      popperContentInjection.arrowRef.value = null\n    })\n\n    return {\n      ns,\n      arrowRef,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass"],"mappings":";;;;SACY,YAAU,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,QAAA,EAAA;AAAO,EAAA,OAAAA,WAAA,EAAAC,kBAAA;AAAA,IAAM,MAAA;AAAA,IAAA;AAAA,MAAW,GAAA,EAAA,UAAA;AAAA,MAAA,OAAAC,cAAA,CAAA,IAAA,CAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAAA;;;;;;;;;;;"}