33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Vue
		
	
	
| import type { ExtractPropTypes } from 'vue';
 | |
| import { defineComponent } from 'vue';
 | |
| import { flattenChildren } from '../_util/props-util';
 | |
| import useConfigInject from '../config-provider/hooks/useConfigInject';
 | |
| 
 | |
| export const breadcrumbSeparatorProps = () => ({
 | |
|   prefixCls: String,
 | |
| });
 | |
| export type BreadcrumbSeparatorProps = Partial<
 | |
|   ExtractPropTypes<ReturnType<typeof breadcrumbSeparatorProps>>
 | |
| >;
 | |
| 
 | |
| export default defineComponent({
 | |
|   compatConfig: { MODE: 3 },
 | |
|   name: 'ABreadcrumbSeparator',
 | |
|   __ANT_BREADCRUMB_SEPARATOR: true,
 | |
|   inheritAttrs: false,
 | |
|   props: breadcrumbSeparatorProps(),
 | |
|   setup(props, { slots, attrs }) {
 | |
|     const { prefixCls } = useConfigInject('breadcrumb', props);
 | |
| 
 | |
|     return () => {
 | |
|       const { separator, class: className, ...restAttrs } = attrs;
 | |
|       const children = flattenChildren(slots.default?.());
 | |
|       return (
 | |
|         <span class={[`${prefixCls.value}-separator`, className]} {...restAttrs}>
 | |
|           {children.length > 0 ? children : '/'}
 | |
|         </span>
 | |
|       );
 | |
|     };
 | |
|   },
 | |
| });
 |