{"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/popper/src/content.vue"],"sourcesContent":["<template>\n  <teleport :to=\"appendTo\" :disabled=\"!teleported\">\n    <transition\n      :name=\"animation\"\n      @after-leave=\"onTransitionLeave\"\n      @before-enter=\"onBeforeEnter\"\n      @after-enter=\"onAfterShow\"\n      @before-leave=\"onBeforeLeave\"\n    >\n      <div\n        v-if=\"shouldRender\"\n        v-show=\"shouldShow\"\n        ref=\"contentRef\"\n        :class=\"popperKls\"\n        :style=\"popperStyle\"\n        :data-popper-placement=\"placement\"\n        @mouseenter=\"onContentEnter\"\n        @mouseleave=\"onContentLeave\"\n      >\n        <template v-if=\"!destroyed\">\n          <template v-if=\"content\">\n            <template v-if=\"rawContent\">\n              <div v-html=\"content\" />\n            </template>\n            <template v-else>\n              {{ content }}\n            </template>\n          </template>\n\n          <template v-else>\n            <slot />\n          </template>\n        </template>\n      </div>\n    </transition>\n  </teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n  computed,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  ref,\n  unref,\n  watch,\n} from 'vue'\nimport { onClickOutside, unrefElement } from '@vueuse/core'\nimport { useNamespace } from '@vuesax-alpha/hooks'\nimport { popperContextKey } from '@vuesax-alpha/tokens'\nimport { composeEventHandlers } from '@vuesax-alpha/utils'\nimport { popperContentEmits, popperContentProps } from './content'\n\ndefineOptions({\n  name: 'VsPopper',\n})\n\nconst ns = useNamespace('popper')\n\nconst {\n  contentRef,\n  controlled,\n  open,\n  trigger,\n  updatePopper,\n  onOpen,\n  onClose,\n  onShow,\n  onHide,\n  onBeforeShow,\n  onBeforeHide,\n} = inject(popperContextKey, undefined)!\n\nconst props = defineProps(popperContentProps)\ndefineEmits(popperContentEmits)\n\nconst destroyed = ref(false)\n\nconst persistentRef = computed(() => {\n  // For testing, we would always want the content to be rendered\n  // to the DOM, so we need to return true here.\n  if (process.env.NODE_ENV === 'test') {\n    return true\n  }\n  return props.persistent\n})\n\nconst shouldRender = computed(() => {\n  return unref(persistentRef) ? true : unref(open)\n})\n\nconst shouldShow = computed(() => {\n  return props.disabled ? false : unref(open)\n})\n\nconst popperKls = computed(() => [\n  ns.b(),\n  ns.is('not-arrow', !props.showArrow),\n  props.popperClass,\n])\n\nconst togglePopperAlive = () => {\n  updatePopper(false)\n}\n\nconst stopWhenControlled = () => {\n  if (unref(controlled)) return true\n}\n\nconst onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n  if (props.interactivity && unref(trigger) === 'hover') {\n    onOpen()\n  }\n})\n\nconst onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n  if (unref(trigger) === 'hover') {\n    onClose()\n  }\n})\n\nconst onTransitionLeave = () => {\n  onHide()\n}\n\nconst onBeforeEnter = () => {\n  updatePopper()\n  onBeforeShow?.()\n}\n\nconst onBeforeLeave = () => {\n  onBeforeHide?.()\n}\n\nlet stopHandle: ReturnType<typeof onClickOutside>\n\nconst onAfterShow = () => {\n  onShow()\n  stopHandle = onClickOutside(\n    computed(() => {\n      return unrefElement(contentRef)\n    }),\n    () => {\n      if (unref(controlled)) return\n      const $trigger = unref(trigger)\n      if ($trigger !== 'hover') {\n        onClose()\n      }\n    }\n  )\n}\n\nonMounted(() => {\n  watch(() => props.visible, togglePopperAlive, { immediate: true })\n})\n\nwatch(\n  () => unref(open),\n  (val) => {\n    if (!val) {\n      stopHandle?.()\n    }\n  },\n  {\n    flush: 'post',\n  }\n)\n\nwatch(\n  () => props.content,\n  () => {\n    updatePopper()\n  }\n)\n\nonBeforeUnmount(() => {\n  destroyed.value = true\n})\n</script>\n"],"names":[],"mappings":"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"}