{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/full-screen/src/index.ts"],"sourcesContent":["import { computed, defineComponent, h, ref } from 'vue'\nimport { useNamespace, useZIndex } from 'element-plus'\nimport { useFullscreen } from '@vueuse/core'\nimport { DIV_TAG } from '@element-plus/constants'\nimport { fullScreenEmits, fullScreenProps } from './full-screen'\nimport Teleport from './teleport.vue'\nimport { useWindowFullscreen } from './hooks'\nimport type { FullScreenType } from './full-screen'\n\nconst WINDOW_TYPE = 'window'\nconst BROWSER_TYPE = 'browser'\n\nexport default defineComponent({\n  name: 'ElFullScreen',\n  inheritAttrs: false,\n  props: fullScreenProps,\n  emits: fullScreenEmits,\n  setup(props, { attrs, slots, expose }) {\n    const ns = useNamespace('full-screen')\n\n    const fullType = ref()\n    const target = ref<HTMLElement>()\n    const teleportEl = ref<HTMLDivElement>()\n\n    const browserReturn = useFullscreen(target)\n    const windowReturn = useWindowFullscreen()\n\n    const { nextZIndex } = useZIndex()\n    const zIndex = ref(nextZIndex())\n\n    const transferTo = computed(() =>\n      fullType.value === WINDOW_TYPE && isFullscreen.value ? 'body' : ''\n    )\n    const isBrowser = computed(() => fullType.value === BROWSER_TYPE)\n\n    const wrapKlass = computed(() => {\n      return {\n        [ns.m('full')]: fullType.value === WINDOW_TYPE && isFullscreen.value,\n      }\n    })\n\n    const setType = (type: FullScreenType) => {\n      type = type ?? props.type ?? WINDOW_TYPE\n      fullType.value = type !== WINDOW_TYPE ? BROWSER_TYPE : WINDOW_TYPE\n    }\n\n    const enter = async (type: FullScreenType) => {\n      setType(type)\n      zIndex.value = nextZIndex()\n      isBrowser.value ? browserReturn.enter() : windowReturn.enter()\n    }\n\n    const exit = async (type: FullScreenType) => {\n      setType(type)\n      zIndex.value = nextZIndex()\n      isBrowser.value ? browserReturn.exit() : windowReturn.exit()\n    }\n\n    const toggle = async (type: FullScreenType) => {\n      setType(type)\n      zIndex.value = nextZIndex()\n      isBrowser.value ? browserReturn.toggle() : windowReturn.toggle()\n    }\n\n    const isFullscreen = computed(() =>\n      isBrowser.value\n        ? browserReturn.isFullscreen.value\n        : windowReturn.isFullscreen.value\n    )\n\n    expose({\n      enter,\n      exit,\n      toggle,\n      isFullscreen,\n      appendTo: teleportEl,\n    })\n\n    return () => {\n      return h(\n        Teleport,\n        {\n          to: transferTo.value,\n        },\n        {\n          default: () =>\n            h(\n              props.tag,\n              {\n                ...attrs,\n                ref: target,\n                class: [ns.b(), attrs.class, wrapKlass.value],\n                style: {\n                  ...(attrs.style ?? {}),\n                  zIndex: zIndex.value,\n                },\n              },\n              [\n                slots.default?.({\n                  enter,\n                  exit,\n                  toggle,\n                  isFullscreen,\n                  appendTo: teleportEl.value,\n                }),\n                h(DIV_TAG, {\n                  ref: teleportEl,\n                  role: 'none',\n                  class: ns.e('teleport'),\n                }),\n              ]\n            ),\n        }\n      )\n    }\n  },\n})\n"],"names":[],"mappings":"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"}