{"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/popper/src/content.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"popperContentRef\"\n    :style=\"contentStyle\"\n    :class=\"contentClass\"\n    tabindex=\"-1\"\n    @mouseenter=\"(e) => $emit('mouseenter', e)\"\n    @mouseleave=\"(e) => $emit('mouseleave', e)\"\n  >\n    <el-focus-trap\n      :trapped=\"trapped\"\n      :trap-on-focus-in=\"true\"\n      :focus-trap-el=\"popperContentRef\"\n      :focus-start-el=\"focusStartRef\"\n      @focus-after-trapped=\"onFocusAfterTrapped\"\n      @focus-after-released=\"onFocusAfterReleased\"\n      @focusin=\"onFocusInTrap\"\n      @focusout-prevented=\"onFocusoutPrevented\"\n      @release-requested=\"onReleaseRequested\"\n    >\n      <slot />\n    </el-focus-trap>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\n// @ts-nocheck\nimport {\n  computed,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  ref,\n  toRefs,\n  unref,\n  watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport { isNil } from 'lodash-unified'\nimport { createPopper } from '@popperjs/core'\nimport ElFocusTrap from '@element-plus/components/focus-trap'\nimport { useNamespace, useZIndex } from '@element-plus/hooks'\nimport {\n  POPPER_CONTENT_INJECTION_KEY,\n  POPPER_INJECTION_KEY,\n  formItemContextKey,\n} from '@element-plus/tokens'\nimport { isElement } from '@element-plus/utils'\nimport { usePopperContentEmits, usePopperContentProps } from './content'\nimport { buildPopperOptions, unwrapMeasurableEl } from './utils'\n\nimport type { WatchStopHandle } from 'vue'\n\ndefineOptions({\n  name: 'ElPopperContent',\n})\n\nconst emit = defineEmits(usePopperContentEmits)\n\nconst props = defineProps(usePopperContentProps)\n\nconst { popperInstanceRef, contentRef, triggerRef, role } = inject(\n  POPPER_INJECTION_KEY,\n  undefined\n)!\nconst formItemContext = inject(formItemContextKey, undefined)\nconst { nextZIndex } = useZIndex()\nconst ns = useNamespace('popper')\nconst popperContentRef = ref<HTMLElement>()\nconst focusStartRef = ref<string | HTMLElement>('first')\nconst arrowRef = ref<HTMLElement>()\nconst arrowOffset = ref<number>()\nprovide(POPPER_CONTENT_INJECTION_KEY, {\n  arrowRef,\n  arrowOffset,\n})\n\nif (\n  formItemContext &&\n  (formItemContext.addInputId || formItemContext.removeInputId)\n) {\n  // disallow auto-id from inside popper content\n  provide(formItemContextKey, {\n    ...formItemContext,\n    addInputId: NOOP,\n    removeInputId: NOOP,\n  })\n}\n\nconst contentZIndex = ref<number>(props.zIndex || nextZIndex())\nconst trapped = ref<boolean>(false)\n\nlet triggerTargetAriaStopWatch: WatchStopHandle | undefined = undefined\n\nconst computedReference = computed(\n  () => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef)\n)\n\nconst contentStyle = computed(\n  () => [{ zIndex: unref(contentZIndex) }, props.popperStyle] as any\n)\n\nconst contentClass = computed(() => [\n  ns.b(),\n  ns.is('pure', props.pure),\n  ns.is(props.effect),\n  props.popperClass,\n])\n\nconst ariaModal = computed<string | undefined>(() => {\n  return role && role.value === 'dialog' ? 'false' : undefined\n})\n\nconst createPopperInstance = ({ referenceEl, popperContentEl, arrowEl }) => {\n  const options = buildPopperOptions(props, {\n    arrowEl,\n    arrowOffset: unref(arrowOffset),\n  })\n\n  return createPopper(referenceEl, popperContentEl, options)\n}\n\nconst updatePopper = (shouldUpdateZIndex = true) => {\n  unref(popperInstanceRef)?.update()\n  shouldUpdateZIndex && (contentZIndex.value = props.zIndex || nextZIndex())\n}\n\nconst togglePopperAlive = () => {\n  const monitorable = { name: 'eventListeners', enabled: props.visible }\n  unref(popperInstanceRef)?.setOptions?.((options) => ({\n    ...options,\n    modifiers: [...(options.modifiers || []), monitorable],\n  }))\n  updatePopper(false)\n  if (props.visible && props.focusOnShow) {\n    trapped.value = true\n  } else if (props.visible === false) {\n    trapped.value = false\n  }\n}\n\nconst onFocusAfterTrapped = () => {\n  emit('focus')\n}\n\nconst onFocusAfterReleased = () => {\n  focusStartRef.value = 'first'\n  emit('blur')\n}\n\nconst onFocusInTrap = (event: FocusEvent) => {\n  if (props.visible && !trapped.value) {\n    if (event.relatedTarget) {\n      ;(event.relatedTarget as HTMLElement)?.focus()\n    }\n    if (event.target) {\n      focusStartRef.value = event.target as typeof focusStartRef.value\n    }\n    trapped.value = true\n  }\n}\n\nconst onFocusoutPrevented = () => {\n  if (!props.trapping) {\n    trapped.value = false\n  }\n}\n\nconst onReleaseRequested = () => {\n  trapped.value = false\n  emit('close')\n}\n\nonMounted(() => {\n  let updateHandle: WatchStopHandle\n  watch(\n    computedReference,\n    (referenceEl) => {\n      updateHandle?.()\n      const popperInstance = unref(popperInstanceRef)\n      popperInstance?.destroy?.()\n      if (referenceEl) {\n        const popperContentEl = unref(popperContentRef)!\n        contentRef.value = popperContentEl\n\n        popperInstanceRef.value = createPopperInstance({\n          referenceEl,\n          popperContentEl,\n          arrowEl: unref(arrowRef),\n        })\n\n        updateHandle = watch(\n          () => referenceEl.getBoundingClientRect(),\n          () => updatePopper(),\n          {\n            immediate: true,\n          }\n        )\n      } else {\n        popperInstanceRef.value = undefined\n      }\n    },\n    {\n      immediate: true,\n    }\n  )\n\n  watch(\n    () => props.triggerTargetEl,\n    (triggerTargetEl, prevTriggerTargetEl) => {\n      triggerTargetAriaStopWatch?.()\n      triggerTargetAriaStopWatch = undefined\n\n      const el = unref(triggerTargetEl || popperContentRef.value)\n      const prevEl = unref(prevTriggerTargetEl || popperContentRef.value)\n\n      if (isElement(el)) {\n        const { ariaLabel, id } = toRefs(props)\n        triggerTargetAriaStopWatch = watch(\n          [role, ariaLabel, ariaModal, id],\n          (watches) => {\n            ;['role', 'aria-label', 'aria-modal', 'id'].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      if (isElement(prevEl)) {\n        ;['role', 'aria-label', 'aria-modal', 'id'].forEach((key) => {\n          prevEl.removeAttribute(key)\n        })\n      }\n    },\n    { immediate: true }\n  )\n\n  watch(() => props.visible, togglePopperAlive, { immediate: true })\n\n  watch(\n    () =>\n      buildPopperOptions(props, {\n        arrowEl: unref(arrowRef),\n        arrowOffset: unref(arrowOffset),\n      }),\n    (option) => popperInstanceRef.value?.setOptions(option)\n  )\n})\n\nonBeforeUnmount(() => {\n  triggerTargetAriaStopWatch?.()\n  triggerTargetAriaStopWatch = undefined\n})\n\ndefineExpose({\n  /**\n   * @description popper content element\n   */\n  popperContentRef,\n  /**\n   * @description popperjs instance\n   */\n  popperInstanceRef,\n  /**\n   * @description method for updating popper\n   */\n  updatePopper,\n\n  /**\n   * @description content style\n   */\n  contentStyle,\n})\n</script>\n"],"names":[],"mappings":"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"}