{"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-controls=\"ariaControls\"\n    :aria-describedby=\"ariaDescribedby\"\n    :aria-expanded=\"ariaExpanded\"\n    :aria-haspopup=\"ariaHaspopup\"\n  >\n    <slot />\n  </el-only-child>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { unrefElement } from '@vueuse/core'\nimport { ElOnlyChild } from '@hd-front-end/components/slot'\nimport { useForwardRef } from '@hd-front-end/hooks'\nimport { isElement, isFocusable } from '@hd-front-end/utils'\nimport { POPPER_INJECTION_KEY } from './constants'\nimport { popperTriggerProps } from './trigger'\n\nimport type { WatchStopHandle } from 'vue'\n\ndefineOptions({\n  name: 'ElPopperTrigger',\n  inheritAttrs: false,\n})\n\nconst props = defineProps(popperTriggerProps)\n\nconst { role, triggerRef } = inject(POPPER_INJECTION_KEY, undefined)!\n\nuseForwardRef(triggerRef)\n\nconst ariaControls = computed<string | undefined>(() => {\n  return ariaHaspopup.value ? props.id : undefined\n})\n\nconst ariaDescribedby = computed<string | undefined>(() => {\n  if (role && role.value === 'tooltip') {\n    return props.open && props.id ? props.id : undefined\n  }\n  return undefined\n})\n\nconst ariaHaspopup = computed<string | undefined>(() => {\n  if (role && role.value !== 'tooltip') {\n    return role.value\n  }\n  return undefined\n})\n\nconst ariaExpanded = computed<string | undefined>(() => {\n  return ariaHaspopup.value ? `${props.open}` : undefined\n})\n\nlet virtualTriggerAriaStopWatch: WatchStopHandle | undefined = undefined\n\nconst TRIGGER_ELE_EVENTS = [\n  'onMouseenter',\n  'onMouseleave',\n  'onClick',\n  'onKeydown',\n  'onFocus',\n  'onBlur',\n  'onContextmenu',\n] as const\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,\n    (el, prevEl) => {\n      virtualTriggerAriaStopWatch?.()\n      virtualTriggerAriaStopWatch = undefined\n      if (isElement(el)) {\n        TRIGGER_ELE_EVENTS.forEach((eventName) => {\n          const handler = props[eventName]\n          if (handler) {\n            ;(el as HTMLElement).addEventListener(\n              eventName.slice(2).toLowerCase(),\n              handler,\n              ['onFocus', 'onBlur'].includes(eventName)\n            )\n            ;(prevEl as HTMLElement)?.removeEventListener?.(\n              eventName.slice(2).toLowerCase(),\n              handler,\n              ['onFocus', 'onBlur'].includes(eventName)\n            )\n          }\n        })\n        if (isFocusable(el as HTMLElement)) {\n          virtualTriggerAriaStopWatch = watch(\n            [ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded],\n            (watches) => {\n              ;[\n                'aria-controls',\n                'aria-describedby',\n                'aria-haspopup',\n                'aria-expanded',\n              ].forEach((key, idx) => {\n                isNil(watches[idx])\n                  ? el.removeAttribute(key)\n                  : el.setAttribute(key, watches[idx]!)\n              })\n            },\n            { immediate: true }\n          )\n        }\n      }\n      if (isElement(prevEl) && isFocusable(prevEl as HTMLElement)) {\n        ;[\n          'aria-controls',\n          'aria-describedby',\n          'aria-haspopup',\n          'aria-expanded',\n        ].forEach((key) => prevEl.removeAttribute(key))\n      }\n    },\n    {\n      immediate: true,\n    }\n  )\n})\n\nonBeforeUnmount(() => {\n  virtualTriggerAriaStopWatch?.()\n  virtualTriggerAriaStopWatch = undefined\n  if (triggerRef.value && isElement(triggerRef.value)) {\n    const el = triggerRef.value as HTMLElement\n    TRIGGER_ELE_EVENTS.forEach((eventName) => {\n      const handler = props[eventName]\n      if (handler) {\n        el.removeEventListener(\n          eventName.slice(2).toLowerCase(),\n          handler,\n          ['onFocus', 'onBlur'].includes(eventName)\n        )\n      }\n    })\n    triggerRef.value = undefined\n  }\n})\n\ndefineExpose({\n  /**\n   * @description trigger element\n   */\n  triggerRef,\n})\n</script>\n"],"names":["virtualTriggering","_createBlock","_unref","ElOnlyChild","_mergeProps","$attrs","_renderSlot"],"mappings":"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"}