/*!
|
* vue-client-only v0.0.0-semantic-release
|
* (c) 2021-present egoist <0x142857@gmail.com>
|
* Released under the MIT License.
|
*/
|
(function (global, factory) {
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
typeof define === 'function' && define.amd ? define(factory) :
|
(global.ClientOnly = factory());
|
}(this, (function () { 'use strict';
|
|
var index = {
|
name: 'ClientOnly',
|
functional: true,
|
props: {
|
placeholder: String,
|
placeholderTag: {
|
type: String,
|
default: 'div'
|
}
|
},
|
render: function render(h, ref) {
|
var parent = ref.parent;
|
var slots = ref.slots;
|
var props = ref.props;
|
|
var ref$1 = slots();
|
var defaultSlot = ref$1.default; if ( defaultSlot === void 0 ) defaultSlot = [];
|
var placeholderSlot = ref$1.placeholder;
|
|
if (parent._isMounted) {
|
return defaultSlot
|
}
|
|
parent.$once('hook:mounted', function () {
|
parent.$forceUpdate();
|
});
|
|
if (props.placeholderTag && (props.placeholder || placeholderSlot)) {
|
return h(
|
props.placeholderTag,
|
{
|
class: ['client-only-placeholder']
|
},
|
props.placeholder || placeholderSlot
|
)
|
}
|
|
// Return a placeholder element for each child in the default slot
|
// Or if no children return a single placeholder
|
return defaultSlot.length > 0 ? defaultSlot.map(function () { return h(false); }) : h(false)
|
}
|
};
|
|
return index;
|
|
})));
|