{"version":3,"file":"breadcrumb.mjs","sources":["../../../components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["import { defineComponent, reactive, provide, toRefs } from 'vue';\nimport props from './props';\nimport BreadcrumbItem from './breadcrumb-item';\nimport type { TdBreadcrumbItemProps, TdBreadcrumbProps } from './type';\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass } from '@tdesign/shared-hooks';\n\nimport { useBreadcrumbOptions, useEllipsis } from './hooks';\nimport { ChevronRightIcon as TdChevronRightIcon, EllipsisIcon as TdEllipsisIcon } from 'tdesign-icons-vue-next';\n\nexport default defineComponent({\n  name: 'TBreadcrumb',\n  props,\n  setup(props: TdBreadcrumbProps) {\n    const { theme, maxItemWidth } = toRefs(props);\n    const COMPONENT_NAME = usePrefixClass('breadcrumb');\n    const renderTNodeJSX = useTNodeJSX();\n    const { ChevronRightIcon, EllipsisIcon } = useGlobalIcon({\n      ChevronRightIcon: TdChevronRightIcon,\n      EllipsisIcon: TdEllipsisIcon,\n    });\n    const separatorContent = renderTNodeJSX('separator');\n    const separator = separatorContent || <ChevronRightIcon />;\n\n    provide(\n      'tBreadcrumb',\n      reactive({\n        separator,\n        theme,\n        maxItemWidth,\n      }),\n    );\n\n    return () => {\n      const { breadcrumbOptions } = useBreadcrumbOptions(props);\n      // 省略号，支持自定义\n\n      const ellipsisItems = breadcrumbOptions.value.slice(\n        props.itemsBeforeCollapse,\n        breadcrumbOptions.value.length - props.itemsAfterCollapse,\n      );\n      const ellipsisSlot = renderTNodeJSX('ellipsis', {\n        params: {\n          items: ellipsisItems,\n          separator,\n        },\n      });\n\n      const ellipsisContent = ellipsisSlot || <EllipsisIcon />;\n\n      const { getDisplayItems } = useEllipsis(props, breadcrumbOptions, ellipsisContent);\n      const items = getDisplayItems.value;\n      const content = items.map((item: TdBreadcrumbItemProps, index: number) => {\n        if (typeof item === 'object' && 'content' in item) {\n          return (\n            <BreadcrumbItem key={index} {...item}>\n              {item.content}\n            </BreadcrumbItem>\n          );\n        }\n        return item;\n      });\n\n      return <div class={COMPONENT_NAME.value}>{content}</div>;\n    };\n  },\n});\n"],"names":["defineComponent","name","props","setup","_toRefs","toRefs","theme","maxItemWidth","COMPONENT_NAME","usePrefixClass","renderTNodeJSX","useTNodeJSX","_useGlobalIcon","useGlobalIcon","ChevronRightIcon","TdChevronRightIcon","EllipsisIcon","TdEllipsisIcon","separatorContent","separator","_createVNode","provide","reactive","_useBreadcrumbOptions","useBreadcrumbOptions","breadcrumbOptions","ellipsisItems","value","slice","itemsBeforeCollapse","length","itemsAfterCollapse","ellipsisSlot","params","items","ellipsisContent","_useEllipsis","useEllipsis","getDisplayItems","content","map","item","index","_typeof","BreadcrumbItem","_mergeProps","_default"],"mappings":"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"}