{"version":3,"file":"BreadcrumbItem.cjs","sources":["../../../../../../packages/components/breadcrumb/src/BreadcrumbItem.tsx"],"sourcesContent":["import type { CustomSlotsType, VueNode } from '@antdv/types';\nimport type { CSSProperties } from 'vue';\nimport { DownOutlined } from '@ant-design/icons-vue';\n\nimport { getPropsSlot } from '@antdv/utils';\nimport { defineComponent } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport Dropdown from '../../dropdown';\nimport { breadcrumbItemProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ABreadcrumbItem',\n  inheritAttrs: false,\n  __ANT_BREADCRUMB_ITEM: true,\n  props: breadcrumbItemProps(),\n  // emits: ['click'],\n  slots: Object as CustomSlotsType<{\n    separator: any\n    overlay: any\n    default: any\n  }>,\n  setup(props, { slots, attrs, emit }) {\n    const { prefixCls } = useConfigInject('breadcrumb', props);\n    /**\n     * if overlay is have\n     * Wrap a Dropdown\n     */\n    const renderBreadcrumbNode = (breadcrumbItem: VueNode, prefix: string) => {\n      const overlay = getPropsSlot(slots, props, 'overlay');\n      if (overlay) {\n        return (\n          <Dropdown {...props.dropdownProps} overlay={overlay} placement=\"bottom\">\n            <span class={`${prefix}-overlay-link`}>\n              {breadcrumbItem}\n              <DownOutlined />\n            </span>\n          </Dropdown>\n        );\n      }\n      return breadcrumbItem;\n    };\n    const handleClick = (e: MouseEvent) => {\n      emit('click', e);\n    };\n    return () => {\n      const separator = getPropsSlot(slots, props, 'separator') ?? '/';\n      const children = getPropsSlot(slots, props);\n      const { class: cls, style, ...restAttrs } = attrs;\n      let link: VueNode;\n      if (props.href !== undefined) {\n        link = (\n          <a class={`${prefixCls.value}-link`} onClick={handleClick} {...restAttrs}>\n            {children}\n          </a>\n        );\n      } else {\n        link = (\n          <span class={`${prefixCls.value}-link`} onClick={handleClick} {...restAttrs}>\n            {children}\n          </span>\n        );\n      }\n      // wrap to dropDown\n      link = renderBreadcrumbNode(link, prefixCls.value);\n      if (children !== undefined && children !== null) {\n        return (\n          <li class={cls} style={style as CSSProperties}>\n            {link}\n            {separator && <span class={`${prefixCls.value}-separator`}>{separator}</span>}\n          </li>\n        );\n      }\n      return null;\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","__ANT_BREADCRUMB_ITEM","props","breadcrumbItemProps","slots","Object","setup","attrs","emit","prefixCls","useConfigInject","renderBreadcrumbNode","breadcrumbItem","prefix","overlay","getPropsSlot","_createVNode","Dropdown","dropdownProps","default","DownOutlined","handleClick","e","separator","children","class","cls","style","restAttrs","link","href","undefined","value"],"mappings":"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"}