{"version":3,"file":"trigger.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-plus/components/slot'\nimport { useForwardRef } from '@element-plus/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","_createBlock","_mergeProps","_withCtx"],"mappings":";;;;;;;;;;AAkBA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY,eAAEA;AAAA,EACd,cAAc;AAAA,EACd,OAAO;AAAA,OACF;AAAA,IACH,cAAc;AAAA,IACd,cAAc;AAAA,IACd,SAAS;AAAA,IACT,WAAW;AAAA,IACX,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,IAAI;AAAA,IACJ,MAAM;AAAA;AAAA,EAER,MAAM,OAAO;AACX,UAAM,EAAE,eAAe,OAAO,sBAAsB;AACpD,kBAAc;AAEd,UACE,MAAM,MAAM,YACZ,CAAC,QAAQ;AACP,UAAI,KAAK;AACP,mBAAW,QAAQ,mBAAmB;AAAA;AAAA,OAG1C;AAAA,MACE,WAAW;AAAA;AAIf,UACE,MAAM,WAAW,OACjB,CAAC,IAAI,WAAW;AACd,UAAI,MAAM,cAAc,aAAa;AACnC;AAAC;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,QAAQ,CAAC,cAAc;AACvB,gBAAM,UAAU,MAAM;AACtB,cAAI,SAAS;AACX;AAAC,YAAC,GAAmB,iBACnB,UAAU,MAAM,GAAG,eACnB;AAED,YAAC,8DAEA;AAAA;AAAA;AAAA;AAAA,OAMV;AAAA,MACE,WAAW;AAAA;AAIf,WAAO;AAAA,MACL;AAAA;AAAA;AAAA;;;iDA/EDC,YAAkB,0BAAqBC;AAAA;;aAExCC,QAAQ;AAAA;;;;;;;;;"}