import { generateProps, generateEmits } from '../helper/component-util' import { componentScheme } from './component.scheme' import { computed, h, inject } from 'vue' import { ElIcon } from 'element-plus' import * as Icons from '@element-plus/icons-vue' import './index.less' export default { name: 'CipTimelineItem', props: generateProps(componentScheme), emits: generateEmits(componentScheme), setup (props, { slots }) { const mode = inject('cip-timeline-mode', {}) const positionClass = mode === 'right' ? 'right' : '' const isHollow = computed(() => { return props.hollow ? 'node-dot' : 'node' }) const colorStyle = { '--bgColor': props.color } const currentIcon = computed(() => { if (!props.icon) return return Icons[props.icon] }) return () =>
  • {props.icon && {h(currentIcon.value)} } {!props.icon &&
    }
    {props.title}
    {props.timestamp}
    {slots.default?.()}
  • } }