UNPKG

tdesign-mobile-vue

Version:
1 lines 3.3 kB
{"version":3,"file":"useChildSlots.mjs","sources":["../../src/hooks/useChildSlots.ts"],"sourcesContent":["import { VNode, isVNode, VNodeNormalizedChildren, getCurrentInstance } from 'vue';\n\n/**\n * 获取子组件VNode。处理多种子组件创建场景\n * 使用场景:<t-steps> <t-steps-item /> </t-steps>, <t-steps> <t-steps-item v-for=\"(item, index)\" :key=\"index\" /> </t-steps>\n * @param childInSlots\n * @returns\n */\nexport default function useChildSlots(childComponentName: string, childInSlots?: VNodeNormalizedChildren) {\n const recurChildren = (children?: VNodeNormalizedChildren) => {\n const result: VNode[] = [];\n if (Array.isArray(children)) {\n children.forEach((child) => {\n if (isVNode(child)) {\n result.push(child);\n\n if (child.component?.subTree) {\n result.push(child.component.subTree);\n result.push(...recurChildren(child.component.subTree.children));\n }\n\n if (child.children) {\n result.push(...recurChildren(child.children));\n }\n }\n });\n }\n return result;\n };\n const targetChildren: VNode[] = [];\n if (childInSlots !== undefined) {\n targetChildren.push(...recurChildren(childInSlots));\n } else {\n targetChildren.push(...recurChildren(getCurrentInstance()?.subTree.children));\n }\n // @ts-ignore\n return targetChildren.filter((child) => child.type?.name === childComponentName);\n}\n"],"names":["useChildSlots","childComponentName","childInSlots","recurChildren","children","result","Array","isArray","forEach","child","isVNode","_child$component","push","component","subTree","_toConsumableArray","apply","targetChildren","_getCurrentInstance","getCurrentInstance","filter","_child$type","type","name"],"mappings":";;;;;;;;;;AAQwB,SAAAA,aAAAA,CAAcC,oBAA4BC,YAAwC,EAAA;AAClG,EAAA,IAAAC,cAAA,GAAgB,SAAhBA,aAAAA,CAAiBC,QAAuC,EAAA;IAC5D,IAAMC,SAAkB,EAAC,CAAA;AACrB,IAAA,IAAAC,KAAA,CAAMC,OAAQ,CAAAH,QAAQ,CAAG,EAAA;AAClBA,MAAAA,QAAA,CAAAI,OAAA,CAAQ,UAACC,KAAU,EAAA;AACtB,QAAA,IAAAC,OAAA,CAAQD,KAAK,CAAG,EAAA;AAAA,UAAA,IAAAE,gBAAA,CAAA;AAClBN,UAAAA,MAAA,CAAOO,KAAKH,KAAK,CAAA,CAAA;UAEb,IAAAE,CAAAA,gBAAA,GAAAF,KAAA,CAAMI,4CAANF,KAAAA,CAAAA,IAAAA,gBAAA,CAAiBG,OAAS,EAAA;YACrBT,MAAA,CAAAO,IAAA,CAAKH,KAAM,CAAAI,SAAA,CAAUC,OAAO,CAAA,CAAA;AACnCT,YAAAA,MAAA,CAAOO,WAAPP,MAAA,EAAAU,kBAAA,CAAeZ,cAAA,CAAcM,MAAMI,SAAU,CAAAC,OAAA,CAAQV,QAAQ,CAAC,CAAA,CAAA,CAAA;AAChE,WAAA;UAEA,IAAIK,MAAML,QAAU,EAAA;AAClBC,YAAAA,MAAA,CAAOO,IAAK,CAAAI,KAAA,CAAZX,MAAA,EAAAU,kBAAA,CAAeZ,cAAc,CAAAM,KAAA,CAAML,QAAQ,CAAC,CAAA,CAAA,CAAA;AAC9C,WAAA;AACF,SAAA;AACF,OAAC,CAAA,CAAA;AACH,KAAA;AACO,IAAA,OAAAC,MAAA,CAAA;GACT,CAAA;EACA,IAAMY,iBAA0B,EAAC,CAAA;AACjC,EAAA,IAAIf,iBAAiB,KAAW,CAAA,EAAA;AAC9Be,IAAAA,cAAA,CAAeL,IAAK,CAAAI,KAAA,CAApBC,cAAA,EAAAF,kBAAA,CAAuBZ,cAAc,CAAAD,YAAY,CAAC,CAAA,CAAA,CAAA;AACpD,GAAO,MAAA;AAAA,IAAA,IAAAgB,mBAAA,CAAA;IACLD,cAAA,CAAeL,WAAfK,cAAA,EAAAF,kBAAA,CAAuBZ,cAAA,CAAAe,CAAAA,mBAAA,GAAcC,oBAAsB,MAAA,IAAA,IAAAD,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,mBAAA,CAAsBJ,OAAA,CAAQV,QAAQ,CAAC,CAAA,CAAA,CAAA;AAC9E,GAAA;AAEA,EAAA,OAAOa,eAAeG,MAAO,CAAA,UAACX;;WAAU,CAAAY,CAAAA,WAAA,GAAAZ,KAAM,CAAAa,IAAA,MAAAD,IAAAA,IAAAA,WAAA,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAA,CAAYE,UAAStB,kBAAkB,CAAA;GAAA,CAAA,CAAA;AACjF;;;;"}