tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 5.03 kB
Source Map (JSON)
{"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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"}