{"version":3,"file":"Slot.js","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n // Manually merge props to ensure `firstNonCommentChildren.props`\n // has higher priority than `attrs` and can override `attrs`.\n // Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will\n // prioritize `attrs` and override `firstNonCommentChildren.props`.\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps)\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":[],"mappings":";;;AAGO,MAAM,OAAO,eAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAMtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxC,WAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AACJ,MAAM,MAAA,MAAA,GAAS,WAAW,EAAE,GAAG,yBAAyB,KAAO,EAAA,EAAG,EAAA,EAAG,WAAW,CAAA;AAEhF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}