{"version":3,"file":"timeline-item.vue.mjs","sources":["../../../../../../packages/components/timeline/src/timeline-item.vue"],"sourcesContent":["<script lang=\"ts\">\n  import { computed, defineComponent, inject, ref } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { useIndex } from '../../../hooks/use-index'\n  import { timelineItemProps } from './props'\n  import type { TimelineContext } from './context'\n  import { timelineInjectionKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('TimelineItem'),\n    components: {},\n    props: timelineItemProps,\n    emits: ['close'],\n    setup(props, { slots }) {\n      // 定义组件命名\n      const ns = getNamespace('timeline-item')\n      // 获取父级组件provide数据\n      const context = inject(timelineInjectionKey)\n      // Ref\n      const itemRef = ref<HTMLElement>()\n      // 点颜色\n      const innerDotColor = ref(props.dotColor)\n      // 内部Index\n      const { innerIndex } = useIndex({\n        itemRef,\n        selector: `.${ns}`,\n        parentClassName: context?.parentCls\n      })\n      // 是否为最后一个\n      const isLast = computed((): boolean => {\n        const { reverse, count } = context as TimelineContext\n        return !reverse ? innerIndex.value + 1 === count : innerIndex.value == 0\n      })\n      // 组件class\n      const cls = computed(() => [ns, isLast.value && 'is-last'])\n      // lineType\n      const lineType = computed(() => [\n        {\n          borderLeftStyle: context?.lineType\n        }\n      ])\n      // slotsIcon\n      const iconCls = computed(() =>\n        slots?.icon?.() ? [`${ns}__dot__icon`, 'is-slot-icon'] : [`${ns}__dot__icon`]\n      )\n      /**\n       * @description 待返回数据\n       */\n      return {\n        ns,\n        cls,\n        itemRef,\n        innerDotColor,\n        isLast,\n        lineType,\n        iconCls\n      }\n    }\n  })\n</script>\n\n<template>\n  <div ref=\"itemRef\" :class=\"cls\">\n    <div :class=\"`${ns}__dot`\">\n      <div v-if=\"!isLast\" :class=\"`${ns}__dot__line`\" :style=\"lineType\"></div>\n      <div :class=\"iconCls\">\n        <slot name=\"icon\">\n          <i class=\"icon\" :style=\"[{ backgroundColor: innerDotColor }]\"></i>\n        </slot>\n      </div>\n    </div>\n    <div :class=\"`${ns}__content`\">\n      <slot>\n        <div :class=\"`${ns}__content__label`\">\n          <slot name=\"label\"></slot>\n        </div>\n        <div :class=\"`${ns}__content__description`\">\n          <slot name=\"description\"></slot>\n        </div>\n      </slot>\n    </div>\n  </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","isLast","_createCommentVNode","iconCls","_createElementVNode","_renderSlot","ns"],"mappings":";;;;SA8DW,YAAS,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,QAAA,EAAA;AAAO,EAAA,OAAAA,WAAA,EAAAC,kBAAA;AAAA,IAAK,KAAA;AAAA,IAAA;AAAA,MAAA,GAAA,EAAA,SAAA;AAAA,MAC5B,KAAA,EAOMC,cAAA,CAAA,IAAA,CAAA,GAAA,CAAA;AAAA,KAAA;AAAA;;;;eANQC,EAAAA,cAAAA,CAAM,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,KAAA,CAAA,CAAA;AAAA,SAAA;AAAA;UAAQ,CAAA,IAAA,CAAA,MAAA,IAAAH,SAAA,EAAA,EAAAC,kBAAA;AAAA,YAAO,KAAA;AAAA,YAAA;AAAA,cAAgB,GAAK,EAAA,CAAA;AAAA,cAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA;AAAA;aACtD;AAAA,YAAA,IAAA;AAAA,YAAA,CAAA;AAAA;AAAA,WAIM,IAJAE,kBAAK,CAAA,MAAA,EAAEC,IAAAA,CAAAA;AAAAA,UAAAA,kBAAAA;AAAAA;;cACX,KAAA,EAEOH,cAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAAA,aAAA;AAAA;yBADI,IAAM,CAAA,MAAA,EAAA,MAAA,EAAA,IAAA,MAAA;AAAA,gBAAAI,kBAAA;AAAA,kBAAO,GAAA;AAAA,kBAAA;AAAA,oBAAA,KAAA,EAAA,MAAA;AAAA;;;;;;;aAI5B;AAAA,YAAA,CAAA;AAAA;AAAA,WAAA;AAAA,SAAA;AAAA,QAAM,CAAA;AAAA;AAAA,OAAK;AAAA,MAAAA,kBAAA;AAAA;;UACT,KAOO,EAAAJ,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA;UANMK,WAAA,IAAA,CAAA,MAAA,EAAA,SAAKC,EAAAA,IAAE,MAAA;AAAA,YAAAF,kBAAA;AAAA;;gBAChB,KAA0B,EAAAJ,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,CAAA;AAAA,eAAA;AAAA;gBAE5BK,UAAA,CAEM,IAAA,CAAA,MAAA,EAAA,OAAA,CAAA;AAAA,eAAA;AAAA,cAFA,CAAA;AAAA;AAAA,aAAK;AAAA,YAAAD,kBAAA;AAAA;;gBACT,KAAgC,EAAAJ,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;AAAA,eAAA;AAAA;;;;;;;;;;;;;;;;;;;;"}