{"version":3,"file":"trigger.vue.mjs","sources":["../../../../../packages/components/popper/src/trigger.vue"],"sourcesContent":["<template>\n  <el-only-child\n    v-if=\"!virtualTriggering\"\n    v-bind=\"$attrs\"\n    :aria-describedby=\"open ? id : undefined\"\n  >\n    <slot />\n  </el-only-child>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, watch } from 'vue'\nimport { ElOnlyChild } from '@element-ultra/components/slot'\nimport { useForwardRef } from '@element-ultra/hooks'\nimport { usePopperTriggerProps } from './popper'\nimport { POPPER_INJECTION_KEY } from './tokens'\nimport { unwrapMeasurableEl } from './utils'\n\nexport default defineComponent({\n  name: 'ElPopperTrigger',\n  components: { ElOnlyChild },\n  inheritAttrs: false,\n  props: {\n    ...usePopperTriggerProps,\n    onMouseenter: Function,\n    onMouseleave: Function,\n    onClick: Function,\n    onKeydown: Function,\n    onFocus: Function,\n    onBlur: Function,\n    onContextmenu: Function,\n    id: String,\n    open: Boolean,\n  },\n  setup(props) {\n    const { triggerRef } = inject(POPPER_INJECTION_KEY, undefined)!\n    useForwardRef(triggerRef)\n\n    watch(\n      () => props.virtualRef,\n      (val) => {\n        if (val) {\n          triggerRef.value = unwrapMeasurableEl(val)\n        }\n      },\n      {\n        immediate: true,\n      }\n    )\n\n    watch(\n      () => triggerRef.value,\n      (el, prevEl) => {\n        if (el && el instanceof HTMLElement) {\n          ;[\n            'onMouseenter',\n            'onMouseleave',\n            'onClick',\n            'onKeydown',\n            'onFocus',\n            'onBlur',\n            'onContextmenu',\n          ].forEach((eventName) => {\n            const handler = props[eventName]\n            if (handler) {\n              ;(el as HTMLElement).addEventListener(\n                eventName.slice(2).toLowerCase(),\n                handler\n              )\n              ;(prevEl as HTMLElement)?.removeEventListener(\n                eventName.slice(2).toLowerCase(),\n                handler\n              )\n            }\n          })\n        }\n      },\n      {\n        immediate: true,\n      }\n    )\n\n    return {\n      triggerRef,\n    }\n  },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_mergeProps","_withCtx"],"mappings":";;;;;AAE4B,EAAA,MAAA,wBAAA,GAAAA,iBAAA,eAAA,CAAA,CAAA;AAEvB,EAAA,OAAA,CAAA,IAAA,CAAA,iBAAA,IAAAC,SAAA,EAAA,EAAAC,WAAA,CAAA,wBAAA,EAAAC,UAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAAA,KAAA,MAAA,EAAA;AAAA,IAEO,kBAAA,EAAA,IAAA,CAAA,IAAA,GAAA,IAAA,CAAA,EAAA,GAAA,KAAA,CAAA;AAAA,GAAR,CAAA,EAAA;AAAA,IAAA,OAAA,EAAAC,QAAA,MAAA;AAAA;;;;;;;;;;"}