UNPKG

portal-vue

Version:

> A Portal Component for Vuejs, to render DOM outside of a component, anywhere in the document.

40 lines (34 loc) 1.02 kB
import Vue from 'vue' import { VueConstructor } from 'vue' import Portal from './components/portal' import PortalTarget from './components/portal-target' import MountingPortal from './components/mounting-portal' import { wormhole as Wormhole } from './components/wormhole' declare global { interface Window { Vue?: VueConstructor<Vue> } } export interface PluginOptions { portalName?: string portalTargetName?: string MountingPortalName?: string } function install(Vue: VueConstructor<Vue>, options: PluginOptions = {}) { Vue.component(options.portalName || 'Portal', Portal) Vue.component(options.portalTargetName || 'PortalTarget', PortalTarget) Vue.component(options.MountingPortalName || 'MountingPortal', MountingPortal) } if ( // @ts-ignore process.env.ROLLUP_BUILD_MODE === 'umd' && typeof window !== 'undefined' && window.Vue && window.Vue === Vue ) { window.Vue.use({ install: install }) } export default { install, } export { Portal, PortalTarget, MountingPortal, Wormhole }