UNPKG

buefy

Version:

Lightweight UI components for Vue.js based on Bulma

47 lines (38 loc) 1.11 kB
import Vue from 'vue' import Modal from './Modal' import { use, registerComponent, registerComponentProgrammatic } from '../../utils/plugins' const ModalProgrammatic = { open(params) { let content let parent if (typeof params === 'string') content = params const defaultParam = { programmatic: true, content } if (params.parent) { parent = params.parent delete params.parent } const propsData = Object.assign(defaultParam, params) const vm = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue const ModalComponent = vm.extend(Modal) return new ModalComponent({ parent, el: document.createElement('div'), propsData }) } } const Plugin = { install(Vue) { registerComponent(Vue, Modal) registerComponentProgrammatic(Vue, 'modal', ModalProgrammatic) } } use(Plugin) export default Plugin export { Modal, ModalProgrammatic }