diff --git a/src/components/base/popper.js b/src/components/base/popper.js index eb70777e..cd7728d3 100644 --- a/src/components/base/popper.js +++ b/src/components/base/popper.js @@ -1,7 +1,9 @@ /** * https://github.com/freeze-component/vue-popper * */ -import Popper from 'popper.js'; +import Vue from 'vue'; +const isServer = Vue.prototype.$isServer; +const Popper = isServer ? function() {} : require('popper.js'); // eslint-disable-line export default { props: { @@ -62,6 +64,7 @@ export default { }, methods: { createPopper() { + if (isServer) return; if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.placement)) { return; } @@ -87,19 +90,23 @@ export default { }); }, updatePopper() { + if (isServer) return; this.popperJS ? this.popperJS.update() : this.createPopper(); }, doDestroy() { + if (isServer) return; if (this.visible) return; this.popperJS.destroy(); this.popperJS = null; }, destroyPopper() { + if (isServer) return; if (this.popperJS) { this.resetTransformOrigin(this.popperJS); } }, resetTransformOrigin(popper) { + if (isServer) return; let placementMap = {top: 'bottom', bottom: 'top', left: 'right', right: 'left'}; let placement = popper._popper.getAttribute('x-placement').split('-')[0]; let origin = placementMap[placement]; @@ -107,6 +114,7 @@ export default { } }, beforeDestroy() { + if (isServer) return; if (this.popperJS) { this.popperJS.destroy(); } diff --git a/src/components/select/dropdown.vue b/src/components/select/dropdown.vue index 1bab5e0f..0308e9e7 100644 --- a/src/components/select/dropdown.vue +++ b/src/components/select/dropdown.vue @@ -2,8 +2,10 @@