UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.39 kB
{"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;;;;;;;"}