{"version":3,"file":"useBreadcrumbOptions.mjs","sources":["../../../../components/breadcrumb/hooks/useBreadcrumbOptions.ts"],"sourcesContent":["import { computed, isVNode, Slots } from 'vue';\nimport { isArray, isString } from 'lodash-es';\nimport { useChildComponentSlots } from '@tdesign/shared-hooks';\nimport type { TdBreadcrumbProps, TdBreadcrumbItemProps } from '../type';\n\ninterface BreadcrumbItemWithIndex extends TdBreadcrumbItemProps {\n  index: number;\n}\n\nexport const useBreadcrumbOptions = (props: TdBreadcrumbProps) => {\n  const getChildComponentSlots = useChildComponentSlots();\n\n  const breadcrumbOptions = computed(() => {\n    const breadcrumbItems: BreadcrumbItemWithIndex[] = [];\n    let currentIndex = 0;\n\n    // 处理 options\n    if (props.options?.length) {\n      props.options.forEach((option) => {\n        breadcrumbItems.push({\n          ...option,\n          index: currentIndex++,\n        });\n      });\n    }\n\n    // 处理 slots\n    const itemsSlots = getChildComponentSlots('TBreadcrumbItem');\n    if (isArray(itemsSlots)) {\n      itemsSlots.forEach((child) => {\n        const getSlotOrProp = (slotName: string, propName: string) => {\n          if (child?.children) {\n            const children = child.children as Slots;\n            const slotContent = children[slotName]?.();\n            if (slotContent) {\n              if (slotName === 'default' && isArray(slotContent)) {\n                // 处理数组类型的 slot 内容\n                const textContent = slotContent\n                  .filter((item) => isVNode(item) && isString(item?.children))\n                  .map((item) => (item as any)?.children)\n                  .join('');\n                return textContent || slotContent;\n              }\n              return slotContent;\n            }\n          }\n          // 如果没有 slot 内容，则使用 props\n          return child.props?.[propName];\n        };\n\n        breadcrumbItems.push({\n          ...child.props,\n          content: getSlotOrProp('default', 'content'),\n          icon: () => getSlotOrProp('icon', 'icon'),\n          index: currentIndex++,\n        });\n      });\n    }\n\n    return breadcrumbItems;\n  });\n\n  return {\n    breadcrumbOptions,\n  };\n};\n"],"names":["useBreadcrumbOptions","props","getChildComponentSlots","useChildComponentSlots","breadcrumbOptions","computed","_props$options","breadcrumbItems","currentIndex","options","length","forEach","option","push","_objectSpread","index","itemsSlots","isArray","child","getSlotOrProp","slotName","propName","_child$props","children","_children$slotName","slotContent","call","textContent","filter","item","isVNode","isString","map","join","content","icon"],"mappings":"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"}