{"version":3,"file":"trigger.vue2.mjs","sources":["../../../../../packages/components/tooltip/src/trigger.vue"],"sourcesContent":["<template>\n  <el-popper-trigger\n    :id=\"id\"\n    :virtual-ref=\"virtualRef\"\n    :open=\"open\"\n    :virtual-triggering=\"virtualTriggering\"\n    :class=\"ns.e('trigger')\"\n    @blur=\"onBlur\"\n    @click=\"onClick\"\n    @contextmenu=\"onContextMenu\"\n    @focus=\"onFocus\"\n    @mouseenter=\"onMouseenter\"\n    @mouseleave=\"onMouseleave\"\n    @keydown=\"onKeydown\"\n  >\n    <slot />\n  </el-popper-trigger>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, ref, unref, toRef } from 'vue'\nimport { ElPopperTrigger } from '@element-ultra/components/popper'\nimport { composeEventHandlers } from '@element-ultra/utils'\nimport { EVENT_CODE } from '@element-ultra/shared'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\nimport { useTooltipTriggerProps } from './tooltip'\nimport { whenTrigger } from './utils'\n\nimport type { ElOnlyChildExpose } from '@element-ultra/components/slot'\n\nexport default defineComponent({\n  name: 'ElTooltipTrigger',\n  components: {\n    ElPopperTrigger\n  },\n  props: useTooltipTriggerProps,\n  setup(props) {\n    const ns = useNamespace('tooltip')\n    const { controlled, id, open, onOpen, onClose, onToggle } = inject(\n      TOOLTIP_INJECTION_KEY,\n      undefined\n    )!\n    const triggerRef = ref<ElOnlyChildExpose | null>(null)\n\n    const stopWhenControlledOrDisabled = () => {\n      if (unref(controlled) || props.disabled) {\n        return true\n      }\n    }\n    const trigger = toRef(props, 'trigger')\n    const onMouseenter = composeEventHandlers(\n      stopWhenControlledOrDisabled,\n      whenTrigger(trigger, 'hover', onOpen)\n    )\n    const onMouseleave = composeEventHandlers(\n      stopWhenControlledOrDisabled,\n      whenTrigger(trigger, 'hover', onClose)\n    )\n    const onClick = composeEventHandlers(\n      stopWhenControlledOrDisabled,\n      whenTrigger(trigger, 'click', e => {\n        // distinguish left click\n        if ((e as MouseEvent).button === 0) {\n          onToggle(e)\n        }\n      })\n    )\n\n    const onFocus = composeEventHandlers(\n      stopWhenControlledOrDisabled,\n      whenTrigger(trigger, 'focus', onOpen)\n    )\n\n    const onBlur = composeEventHandlers(\n      stopWhenControlledOrDisabled,\n      whenTrigger(trigger, 'focus', onClose)\n    )\n\n    const onContextMenu = composeEventHandlers(\n      stopWhenControlledOrDisabled,\n      whenTrigger(trigger, 'contextmenu', (e: Event) => {\n        e.preventDefault()\n        onToggle(e)\n      })\n    )\n\n    const onKeydown = composeEventHandlers(stopWhenControlledOrDisabled, (e: KeyboardEvent) => {\n      const { code } = e\n      if (code === EVENT_CODE.enter || code === EVENT_CODE.space) {\n        onToggle(e)\n      }\n    })\n\n    return {\n      onBlur,\n      onContextMenu,\n      onFocus,\n      onMouseenter,\n      onMouseleave,\n      onClick,\n      onKeydown,\n      open,\n      id,\n      triggerRef,\n      ns\n    }\n  }\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;AA+BA,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,kBAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,eAAA;AAAA,GACF;AAAA,EACA,KAAO,EAAA,sBAAA;AAAA,EACP,MAAM,KAAO,EAAA;AACX,IAAM,MAAA,EAAA,GAAK,aAAa,SAAS,CAAA,CAAA;AACjC,IAAA,MAAM,EAAE,UAAY,EAAA,EAAA,EAAI,MAAM,MAAQ,EAAA,OAAA,EAAS,UAAa,GAAA,MAAA;AAAA,MAC1D,qBAAA;AAAA,MACA,KAAA,CAAA;AAAA,KACF,CAAA;AACA,IAAM,MAAA,UAAA,GAAa,IAA8B,IAAI,CAAA,CAAA;AAErD,IAAA,MAAM,+BAA+B,MAAM;AACzC,MAAA,IAAI,KAAM,CAAA,UAAU,CAAK,IAAA,KAAA,CAAM,QAAU,EAAA;AACvC,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACF,CAAA;AACA,IAAM,MAAA,OAAA,GAAU,KAAM,CAAA,KAAA,EAAO,SAAS,CAAA,CAAA;AACtC,IAAA,MAAM,YAAe,GAAA,oBAAA;AAAA,MACnB,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,MAAM,CAAA;AAAA,KACtC,CAAA;AACA,IAAA,MAAM,YAAe,GAAA,oBAAA;AAAA,MACnB,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,KACvC,CAAA;AACA,IAAA,MAAM,OAAU,GAAA,oBAAA;AAAA,MACd,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,CAAK,CAAA,KAAA;AAEjC,QAAK,IAAA,CAAA,CAAiB,WAAW,CAAG,EAAA;AAClC,UAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAAA,SACZ;AAAA,OACD,CAAA;AAAA,KACH,CAAA;AAEA,IAAA,MAAM,OAAU,GAAA,oBAAA;AAAA,MACd,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,MAAM,CAAA;AAAA,KACtC,CAAA;AAEA,IAAA,MAAM,MAAS,GAAA,oBAAA;AAAA,MACb,4BAAA;AAAA,MACA,WAAA,CAAY,OAAS,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,KACvC,CAAA;AAEA,IAAA,MAAM,aAAgB,GAAA,oBAAA;AAAA,MACpB,4BAAA;AAAA,MACA,WAAY,CAAA,OAAA,EAAS,aAAe,EAAA,CAAC,CAAa,KAAA;AAChD,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAAA,OACX,CAAA;AAAA,KACH,CAAA;AAEA,IAAA,MAAM,SAAY,GAAA,oBAAA,CAAqB,4BAA8B,EAAA,CAAC,CAAqB,KAAA;AACzF,MAAM,MAAA,EAAE,MAAS,GAAA,CAAA,CAAA;AACjB,MAAA,IAAI,IAAS,KAAA,UAAA,CAAW,KAAS,IAAA,IAAA,KAAS,WAAW,KAAO,EAAA;AAC1D,QAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAAA,OACZ;AAAA,KACD,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MACL,MAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,EAAA;AAAA,MACA,UAAA;AAAA,MACA,EAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}