UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 1.68 kB
{"version":3,"file":"useTeleport.mjs","sources":["../../src/hooks/useTeleport.ts"],"sourcesContent":["import { getSSRAttach, getAttach } from '../utils/dom';\nimport { computed, Ref, onMounted, ref, watch } from 'vue';\nimport { AttachNode } from '../common';\nimport isFunction from 'lodash/isFunction';\n\nconst useTeleport = (\n attach: (() => AttachNode) | Ref<AttachNode>,\n triggerNode?: (() => any) | Ref<any>,\n): Ref<string | Element> => {\n // 如果是函数, 则使用computed包裹 否则直接使用ref\n const to = isFunction(attach) ? computed(attach) : ref(attach);\n const innerTriggerNode = isFunction(triggerNode) ? computed(triggerNode) : ref(triggerNode);\n\n const element = ref<string | Element>();\n\n const getElement = () => {\n element.value = getSSRAttach() || getAttach(to.value, innerTriggerNode.value);\n };\n\n onMounted(() => getElement());\n\n watch([to, innerTriggerNode], () => getElement());\n\n return element;\n};\n\nexport default useTeleport;\n"],"names":["isFunction","element","onMounted","watch"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA,IAAA,WAAA,GAAA,SAAA,WAAA,CAAA,MAAA,EAAA,WAAA,EAAA;AAKQ,EAAA,IAAA,EAAA,GAAAA,YAAA,CAAA,MAAA,CAAA,GAAA,QAAA,CAAA,MAAA,CAAA,GAAA,GAAA,CAAA,MAAA,CAAA,CAAA;AACA,EAAA,IAAA,gBAAA,GAAAA,YAAA,CAAA,WAAA,CAAA,GAAA,QAAA,CAAA,WAAA,CAAA,GAAA,GAAA,CAAA,WAAA,CAAA,CAAA;AAEN,EAAA,IAAA,OAAA,GAAA,GAAA,EAAA,CAAA;AAEA,EAAA,IAAA,UAAA,GAAA,SAAA,UAAA,GAAA;AACEC,IAAAA,OAAAA,CAAAA,KAAAA,GAAAA,YAAAA,EAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAAAA,gBAAAA,CAAAA,KAAAA,CAAAA,CAAAA;;AAGQC,EAAAA,SAAAA,CAAAA,YAAAA;;;AAEVC,EAAAA,KAAAA,CAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,CAAAA,EAAAA,YAAAA;;;AAEO,EAAA,OAAA,OAAA,CAAA;AACT;;;;"}