1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { defineComponent, ref, createVNode, Fragment } from 'vue';
import '../../../utils/index.mjs';
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
import { composeRefs } from '../../../utils/vue/refs.mjs';
import { ensureOnlyChild } from '../../../utils/vue/vnode.mjs';
const forwardRefProps = buildProps({
setRef: {
type: definePropType(Function),
required: true
},
onlyChild: Boolean
});
var ForwardRef = defineComponent({
props: forwardRefProps,
setup(props, {
slots
}) {
const fragmentRef = ref();
const setRef = composeRefs(fragmentRef, (el) => {
if (el) {
props.setRef(el.nextElementSibling);
} else {
props.setRef(null);
}
});
return () => {
var _a;
const [firstChild] = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || [];
const child = props.onlyChild ? ensureOnlyChild(firstChild.children) : firstChild.children;
return createVNode(Fragment, {
"ref": setRef
}, [child]);
};
}
});
export { ForwardRef as default, forwardRefProps };
//# sourceMappingURL=forward-ref.mjs.map