{"version":3,"file":"trigger.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\" setup>\nimport { inject, nextTick, ref, toRef, unref } from 'vue'\nimport { ElPopperTrigger } from '@hd-front-end/components/popper'\nimport {\n  composeEventHandlers,\n  focusElement,\n  getEventCode,\n} from '@hd-front-end/utils'\nimport { useNamespace } from '@hd-front-end/hooks'\nimport { TOOLTIP_INJECTION_KEY } from './constants'\nimport { useTooltipTriggerProps } from './trigger'\nimport { whenTrigger } from './utils'\n\nimport type { OnlyChildExpose } from '@hd-front-end/components/slot'\n\ndefineOptions({\n  name: 'ElTooltipTrigger',\n})\n\nconst props = defineProps(useTooltipTriggerProps)\n\nconst ns = useNamespace('tooltip')\nconst { controlled, id, open, onOpen, onClose, onToggle } = inject(\n  TOOLTIP_INJECTION_KEY,\n  undefined\n)!\n\nconst triggerRef = ref<OnlyChildExpose | null>(null)\n\nconst stopWhenControlledOrDisabled = () => {\n  if (unref(controlled) || props.disabled) {\n    return true\n  }\n}\nconst trigger = toRef(props, 'trigger')\nconst onMouseenter = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'hover', (e) => {\n    onOpen(e)\n\n    if (props.focusOnTarget && e.target) {\n      nextTick(() => {\n        focusElement(e.target as HTMLElement, { preventScroll: true })\n      })\n    }\n  })\n)\nconst onMouseleave = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'hover', onClose)\n)\nconst 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\nconst onFocus = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'focus', onOpen)\n)\n\nconst onBlur = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'focus', onClose)\n)\n\nconst onContextMenu = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  whenTrigger(trigger, 'contextmenu', (e: Event) => {\n    e.preventDefault()\n    onToggle(e)\n  })\n)\n\nconst onKeydown = composeEventHandlers(\n  stopWhenControlledOrDisabled,\n  (e: KeyboardEvent) => {\n    const code = getEventCode(e)\n    if (props.triggerKeys.includes(code)) {\n      e.preventDefault()\n      onToggle(e)\n    }\n  }\n)\n\ndefineExpose({\n  /**\n   * @description trigger element\n   */\n  triggerRef,\n})\n</script>\n"],"names":["_createBlock","_unref","virtualRef","virtualTriggering","_normalizeClass","_renderSlot"],"mappings":"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"}