element-plus
Version:
A Component Library for Vue 3
1 lines • 3.25 kB
Source Map (JSON)
{"version":3,"file":"trigger2.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\" setup>\nimport { inject, onMounted, watch } from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport { ElOnlyChild } from '@element-plus/components/slot'\nimport { useForwardRef } from '@element-plus/hooks'\nimport { POPPER_INJECTION_KEY } from '@element-plus/tokens'\nimport { isElement } from '@element-plus/utils'\nimport { usePopperTriggerProps } from './trigger'\n\ndefineOptions({\n name: 'ElPopperTrigger',\n inheritAttrs: false,\n})\n\nconst props = defineProps(usePopperTriggerProps)\n\nconst { triggerRef } = inject(POPPER_INJECTION_KEY, undefined)!\n\nuseForwardRef(triggerRef)\n\nonMounted(() => {\n watch(\n () => props.virtualRef,\n (virtualEl) => {\n if (virtualEl) {\n triggerRef.value = unrefElement(virtualEl as HTMLElement)\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\ndefineExpose({\n /**\n * @description trigger element\n */\n triggerRef,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAA,EAAA,UAAA,EAAA,GAAA,MAAA,CAAA,oBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEA,IAAA,aAAA,CAAA,UAAA,CAAA,CAAA;AAEA,IAAA,SAAA,CAAA,MAAA;AACA,MAAA,KAAA,CACA,MAAA,KAAA,CAAA,UACA,EAAA,CAAA,SAAA,KAAA;AACA,QAAA,IAAA,SAAA,EAAA;AACA,UAAA,UAAA,CAAA,KAAA,GAAA,aAAA,SAAA,CAAA,CAAA;AAAA,SACA;AAAA,OAEA,EAAA;AAAA,QACA,SAAA,EAAA,IAAA;AAAA,OAEA,CAAA,CAAA;AAEA,MAAA,KAAA,CACA,MAAA,UAAA,CAAA,KACA,EAAA,CAAA,IAAA,MAAA,KAAA;AACA,QAAA,IAAA,SAAA,CAAA,EAAA,CAAA,EAAA;AACA,UAAA,CAAA;AAAA,UAAA;AAAA,YACA,cAAA;AAAA,YACA,cAAA;AAAA,YACA,SAAA;AAAA,YACA,WAAA;AAAA,YACA,SAAA;AAAA,YACA,QAAA;AAAA,YACA,eAAA;AAAA,WACA,CAAA,OAAA,CAAA,CAAA,SAAA,KAAA;AACA,YAAA,IAAA,EAAA;AACA,YAAA,MAAA,OAAA,GAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AACA,YAAA,IAAA,OAAA,EAAA;AAAA,cAAA,CAAA;AAIA,cAAA,EAAA,CAAA,2BACA,KAAA,CAAA,CAAA,CAAA,CAAA,WAAA,EAAA,EAAA,OAAA;AAEA,cACA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,mBAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,WAAA,EAAA,EAAA,OAAA,CAAA,CAAA;AAAA,aACA;AAAA,WACA,CAAA,CAAA;AAAA,SAEA;AAAA,OAAA,EACA;AAAA,QAEA,SAAA,EAAA,IAAA;AAAA,OACA,CAAA,CAAA;AAEA,KAAA,CAAA,CAAA;AAAA,IAIA,MAAA,CAAA;AAAA,MACA,UAAA;;;;;;;;;;;;;;;;;;"}