{"version":3,"file":"trigger.vue2.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":["ElOnlyChild"],"mappings":";;;;;;;;;AAkBA,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,iBAAA;AAAA,EACN,UAAA,EAAY,eAAEA,SAAY,EAAA;AAAA,EAC1B,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,GAAG,qBAAA;AAAA,IACH,YAAc,EAAA,QAAA;AAAA,IACd,YAAc,EAAA,QAAA;AAAA,IACd,OAAS,EAAA,QAAA;AAAA,IACT,SAAW,EAAA,QAAA;AAAA,IACX,OAAS,EAAA,QAAA;AAAA,IACT,MAAQ,EAAA,QAAA;AAAA,IACR,aAAe,EAAA,QAAA;AAAA,IACf,EAAI,EAAA,MAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,GACR;AAAA,EACA,MAAM,KAAO,EAAA;AACX,IAAA,MAAM,EAAE,UAAA,EAAe,GAAA,MAAA,CAAO,sBAAsB,KAAS,CAAA,CAAA,CAAA;AAC7D,IAAA,aAAA,CAAc,UAAU,CAAA,CAAA;AAExB,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,GAAQ,KAAA;AACP,QAAA,IAAI,GAAK,EAAA;AACP,UAAW,UAAA,CAAA,KAAA,GAAQ,mBAAmB,GAAG,CAAA,CAAA;AAAA,SAC3C;AAAA,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,CAAC,IAAI,MAAW,KAAA;AACd,QAAI,IAAA,EAAA,IAAM,cAAc,WAAa,EAAA;AACnC,UAAA,CAAA;AAAC,UAAA;AAAA,YACC,cAAA;AAAA,YACA,cAAA;AAAA,YACA,SAAA;AAAA,YACA,WAAA;AAAA,YACA,SAAA;AAAA,YACA,QAAA;AAAA,YACA,eAAA;AAAA,WACF,CAAE,OAAQ,CAAA,CAAC,SAAc,KAAA;AACvB,YAAM,MAAA,OAAA,GAAU,MAAM,SAAS,CAAA,CAAA;AAC/B,YAAA,IAAI,OAAS,EAAA;AACX,cAAA,CAAA;AAAC,cAAC,EAAmB,CAAA,gBAAA;AAAA,gBACnB,SAAU,CAAA,KAAA,CAAM,CAAC,CAAA,CAAE,WAAY,EAAA;AAAA,gBAC/B,OAAA;AAAA,eACF,CAAA;AACC,cAAC,MAAwB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,mBAAA;AAAA,gBACxB,SAAU,CAAA,KAAA,CAAM,CAAC,CAAA,CAAE,WAAY,EAAA;AAAA,gBAC/B,OAAA;AAAA,eAAA,CAAA;AAAA,aAEJ;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAO,OAAA;AAAA,MACL,UAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}