123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*!
- * 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;
|