70a193a3f27865a4c0e3e762a1e8087efc2dfed2d194123aeb5d36c7d770ad3a42551781053624c1fa3c91c2951a74658fb4239d4cb1ecf40207de9d09e1b4 1.2 KB

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