UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.18 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, 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;;;;;;;;;"}