/*! * vue-client-only v0.0.0-semantic-release * (c) 2021-present egoist <0x142857@gmail.com> * Released under the MIT License. */ '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) } }; module.exports = index;