{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-ordered-children/index.ts"],"sourcesContent":["import { shallowRef } from 'vue'\nimport { flattedChildren, isVNode } from '@vuesax-plus/utils'\n\nimport type { ComponentInternalInstance, VNode } from 'vue'\n\nconst getOrderedChildren = <T>(\n  vm: ComponentInternalInstance,\n  childComponentName: string,\n  children: Record<number, T>\n): T[] => {\n  const nodes = flattedChildren(vm.subTree).filter(\n    (n): n is VNode =>\n      isVNode(n) &&\n      (n.type as any)?.name === childComponentName &&\n      !!n.component\n  )\n  const uids = nodes.map((n) => n.component!.uid)\n  return uids.map((uid) => children[uid]).filter((p) => !!p)\n}\n\nexport const useOrderedChildren = <T extends { uid: number }>(\n  vm: ComponentInternalInstance,\n  childComponentName: string\n) => {\n  const children: Record<number, T> = {}\n  const orderedChildren = shallowRef<T[]>([])\n\n  const addChild = (child: T) => {\n    children[child.uid] = child\n    orderedChildren.value = getOrderedChildren(vm, childComponentName, children)\n  }\n  const removeChild = (uid: number) => {\n    delete children[uid]\n    orderedChildren.value = orderedChildren.value.filter(\n      (children) => children.uid !== uid\n    )\n  }\n\n  return {\n    children: orderedChildren,\n    addChild,\n    removeChild,\n  }\n}\n"],"names":["children"],"mappings":";;;;AAKA,MAAM,kBAAqB,GAAA,CACzB,EACA,EAAA,kBAAA,EACA,QACQ,KAAA;AACR,EAAA,MAAM,KAAQ,GAAA,eAAA,CAAgB,EAAG,CAAA,OAAO,CAAE,CAAA,MAAA;AAAA,IACxC,CAAC,CAAe,KAAA;AAXpB,MAAA,IAAA,EAAA,CAAA;AAYM,MAAQ,OAAA,OAAA,CAAA,CAAC,OACR,EAAE,GAAA,CAAA,CAAA,IAAA,KAAF,mBAAgB,IAAS,MAAA,kBAAA,IAC1B,CAAC,CAAC,CAAE,CAAA,SAAA,CAAA;AAAA,KAAA;AAAA,GACR,CAAA;AACA,EAAA,MAAM,OAAO,KAAM,CAAA,GAAA,CAAI,CAAC,CAAM,KAAA,CAAA,CAAE,UAAW,GAAG,CAAA,CAAA;AAC9C,EAAA,OAAO,IAAK,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,QAAS,CAAA,GAAA,CAAI,CAAE,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAA,CAAA;AAC3D,CAAA,CAAA;AAEa,MAAA,kBAAA,GAAqB,CAChC,EAAA,EACA,kBACG,KAAA;AACH,EAAA,MAAM,WAA8B,EAAC,CAAA;AACrC,EAAM,MAAA,eAAA,GAAkB,UAAgB,CAAA,EAAE,CAAA,CAAA;AAE1C,EAAM,MAAA,QAAA,GAAW,CAAC,KAAa,KAAA;AAC7B,IAAA,QAAA,CAAS,MAAM,GAAO,CAAA,GAAA,KAAA,CAAA;AACtB,IAAA,eAAA,CAAgB,KAAQ,GAAA,kBAAA,CAAmB,EAAI,EAAA,kBAAA,EAAoB,QAAQ,CAAA,CAAA;AAAA,GAC7E,CAAA;AACA,EAAM,MAAA,WAAA,GAAc,CAAC,GAAgB,KAAA;AACnC,IAAA,OAAO,QAAS,CAAA,GAAA,CAAA,CAAA;AAChB,IAAgB,eAAA,CAAA,KAAA,GAAQ,gBAAgB,KAAM,CAAA,MAAA;AAAA,MAC5C,CAACA,SAAaA,KAAAA,SAAAA,CAAS,GAAQ,KAAA,GAAA;AAAA,KACjC,CAAA;AAAA,GACF,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,QAAU,EAAA,eAAA;AAAA,IACV,QAAA;AAAA,IACA,WAAA;AAAA,GACF,CAAA;AACF;;;;"}