1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- "use strict";
- exports.__esModule = true;
- exports.PortalMixin = PortalMixin;
- function getElement(selector) {
- if (typeof selector === 'string') {
- return document.querySelector(selector);
- }
- return selector();
- }
- function PortalMixin(_temp) {
- var _ref = _temp === void 0 ? {} : _temp,
- ref = _ref.ref,
- afterPortal = _ref.afterPortal;
- return {
- props: {
- getContainer: [String, Function]
- },
- watch: {
- getContainer: 'portal'
- },
- mounted: function mounted() {
- if (this.getContainer) {
- this.portal();
- }
- },
- methods: {
- portal: function portal() {
- var getContainer = this.getContainer;
- var el = ref ? this.$refs[ref] : this.$el;
- var container;
- if (getContainer) {
- container = getElement(getContainer);
- } else if (this.$parent) {
- container = this.$parent.$el;
- }
- if (container && container !== el.parentNode) {
- container.appendChild(el);
- }
- if (afterPortal) {
- afterPortal.call(this);
- }
- }
- }
- };
- }
|