@coreui/vue
Version:
UI Components Library for Vue.js
49 lines (45 loc) • 1.36 kB
JavaScript
;
var vue = require('vue');
const getContainer = (container) => {
if (container) {
return typeof container === 'function' ? container() : container;
}
return 'body';
};
const CConditionalTeleport = vue.defineComponent({
name: 'CConditionalTeleport',
props: {
/**
* An HTML element or function that returns a single element, with `document.body` as the default.
*
* @since 5.0.0
*/
container: {
type: [Object, String],
default: 'body',
},
/**
* Render some children into a different part of the DOM
*/
teleport: {
type: [Boolean],
default: true,
},
},
setup(props, { slots }) {
const container = vue.ref(getContainer(props.container));
vue.watch(() => [props.container, props.teleport], () => {
if (props.teleport) {
container.value = getContainer(props.container);
}
});
return () => vue.h(vue.Teleport, {
disabled: props.teleport === false,
to: container.value,
}, {
default: () => slots.default && slots.default(),
});
},
});
exports.CConditionalTeleport = CConditionalTeleport;
//# sourceMappingURL=CConditionalTeleport.js.map