UNPKG

vue-cesium-jyt

Version:
1 lines 4.62 kB
{"version":3,"file":"use-portal.mjs","sources":["../../../../../packages/composables/private/use-portal.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-06-01 18:06:23\n * @LastEditTime: 2021-10-02 10:52:32\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\composables\\private\\use-portal.ts\n */\nimport { h, ref, onUnmounted, Teleport } from 'vue'\nimport { createGlobalNode, removeGlobalNode } from '@vue-cesium/utils/private/global-nodes'\nimport { portalList } from '@vue-cesium/utils/private/portal'\n\nfunction isOnGlobalDialog(vm) {\n vm = vm.parent\n\n while (vm !== void 0 && vm !== null) {\n if (vm.type.name === 'VcGlobalDialog') {\n return true\n }\n if (vm.type.name === 'VcDialog' || vm.type.name === 'VcMenu') {\n return false\n }\n\n vm = vm.parent\n }\n\n return false\n}\n\n// Warning!\n// You MUST specify \"inheritAttrs: false\" in your component\n\nexport default function (vm, innerRef, renderPortalContent, checkGlobalDialog?) {\n let portalEl: HTMLElement = null!\n\n if (vm.props?.teleport?.to) {\n portalEl = vm.props?.teleport?.to\n }\n\n const onGlobalDialog = checkGlobalDialog === true && isOnGlobalDialog(vm)\n const portalIsActive = ref(false)\n\n function showPortal() {\n if (onGlobalDialog === false && portalEl === null) {\n portalEl = createGlobalNode()\n }\n\n portalIsActive.value = true\n\n // register portal\n portalList.push(vm.proxy)\n }\n\n function hidePortal() {\n portalIsActive.value = false\n\n // unregister portal\n const index = portalList.indexOf(vm.proxy)\n if (index > -1) {\n portalList.splice(index, 1)\n }\n\n if (portalEl !== null && !vm.props?.teleport?.to) {\n removeGlobalNode(portalEl)\n portalEl = null!\n }\n }\n\n onUnmounted(hidePortal)\n\n // expose publicly needed stuff for portal utils\n Object.assign(vm.proxy, { __vcPortalInnerRef: innerRef })\n\n return {\n showPortal,\n hidePortal,\n\n portalIsActive,\n\n renderPortal: () => {\n return onGlobalDialog === true\n ? renderPortalContent()\n : portalIsActive.value === true\n ? [h(Teleport, { to: portalEl }, renderPortalContent())]\n : void 0\n }\n }\n}\n"],"names":[],"mappings":"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"}