{"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, onMounted, watch } from 'vue'\nimport { ElOnlyChild } from '@element-plus/components/slot'\nimport { useForwardRef } from '@element-plus/hooks'\nimport { isElement } from '@element-plus/utils'\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    onMounted(() => {\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 (isElement(el)) {\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\n    return {\n      triggerRef,\n    }\n  },\n})\n</script>\n"],"names":["ElOnlyChild","_openBlock","_createBlock","_mergeProps","_renderSlot"],"mappings":";;;;;;;;;;;;AAmBA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,iBAAA;AAAA,EACN,YAAY,eAAEA,SAAA,EAAA;AAAA,EACd,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACF,GAAA,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,GAAA;AAAA,EAER,MAAM,KAAO,EAAA;AACX,IAAM,MAAA,EAAE,UAAe,EAAA,GAAA,MAAA,CAAO,oBAAsB,EAAA,KAAA,CAAA,CAAA,CAAA;AACpD,IAAc,aAAA,CAAA,UAAA,CAAA,CAAA;AAEd,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,KAAA,CACE,MAAM,KAAA,CAAM,UACZ,EAAA,CAAC,GAAQ,KAAA;AACP,QAAA,IAAI,GAAK,EAAA;AACP,UAAA,UAAA,CAAW,QAAQ,kBAAmB,CAAA,GAAA,CAAA,CAAA;AAAA,SAAA;AAAA,OAG1C,EAAA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OAAA,CAAA,CAAA;AAIf,MAAA,KAAA,CACE,MAAM,UAAA,CAAW,KACjB,EAAA,CAAC,IAAI,MAAW,KAAA;AACd,QAAA,IAAI,UAAU,EAAK,CAAA,EAAA;AACjB,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,WACA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AACvB,YAAA,MAAM,UAAU,KAAM,CAAA,SAAA,CAAA,CAAA;AACtB,YAAA,IAAI,OAAS,EAAA;AACX,cAAA,CAAA;AAAC,cAAC,EAAmB,CAAA,gBAAA,CACnB,SAAU,CAAA,KAAA,CAAM,GAAG,WACnB,EAAA,EAAA,OAAA,CAAA,CAAA;AAED,cAAC,MAAwB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MACd,CAAA,mBACV,CAAA,SAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,WAAA,EAAA,EAAA,OAAA,CAAA,CAAA;AAAA,aAAA;AAAA,WAAA,CAAA,CAAA;AAAA,SAAA;AAAA,OAMV,EAAA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAKjB,IAAO,OAAA;AAAA,MACL,UAAA;AAAA,KAAA,CAAA;AAAA,GAAA;AAAA,CAAA,CAAA,CAAA;;;AApFK,EAAA,OAAA,CAAA,IAAA,CAAA,iBAAA,IAAAC,SAAA,EAAA,EADTC,WAMgB,CAAA,wBAAA,EANhBC,UAMgB,CAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAJN,IAAM,CAAA,MAAA,EAAA;AAAA,IACb,kBAAA,EAAkB,YAAO,IAAK,CAAA,EAAA,GAAA,KAAA,CAAA;AAAA,GAAA,CAAA,EAAA;qBAE/B,MAAQ;AAAA,MAARC,UAAQ,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,KAAA,CAAA;AAAA,IAAA,CAAA,EAAA,CAAA;;;;;;;"}