{"version":3,"file":"timeline.mjs","sources":["../../src/timeline/timeline.tsx"],"sourcesContent":["import { defineComponent, provide, computed } from 'vue';\nimport TimeLineProps from './props';\nimport { TimelineInjectKey, DefaultAlign } from './hooks';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useChildComponentSlots } from '../hooks/slot';\nimport TimelineItem from './timeline-item';\nimport log from '../_common/js/log';\n\nexport default defineComponent({\n  name: 'XTimeline',\n  props: TimeLineProps,\n\n  setup(props) {\n    const COMPONENT_NAME = usePrefixClass('timeline');\n    const renderAlign = computed(() => {\n      const { labelAlign, layout } = props;\n      let res = layout === 'vertical' ? 'left' : 'top';\n      if (layout === 'vertical' && labelAlign) {\n        const index = DefaultAlign.horizontal.indexOf(labelAlign);\n        const isError = index !== -1;\n        isError && log.warn('Timeline', 'If layout is vertical, align should be \"left\",\"alternate\" or \"right\" ');\n        res = isError ? DefaultAlign.vertical[index] : labelAlign;\n      }\n      if (layout === 'horizontal' && labelAlign) {\n        const index = DefaultAlign.vertical.indexOf(labelAlign);\n        const isError = index !== -1;\n        isError && log.warn('Timeline', 'If layout is horizontal, align should be \"top\",\"alternate\" or \"bottom\" ');\n        res = isError ? DefaultAlign.horizontal[index] : labelAlign;\n      }\n      return res;\n    });\n\n    const TimeLineProvide = computed(() => {\n      const { theme, reverse, layout, labelAlign, mode } = props;\n      return {\n        theme,\n        reverse,\n        itemsStatus: [''],\n        layout,\n        globalAlign: labelAlign,\n        mode,\n        renderAlign: renderAlign.value,\n      };\n    });\n\n    const hasLabelItem = 1;\n    provide(TimelineInjectKey, TimeLineProvide);\n\n    return () => {\n      const getChildComponentSlots = useChildComponentSlots();\n      let timelineItems = getChildComponentSlots('XTimelineItem');\n      if (props.reverse) timelineItems = timelineItems.reverse();\n      return (\n        <ul\n          class={[\n            `${COMPONENT_NAME.value}`,\n            {\n              [`${COMPONENT_NAME.value}-${renderAlign.value}`]: true,\n              [`${COMPONENT_NAME.value}-reverse`]: props.reverse,\n              [`${COMPONENT_NAME.value}-${props.layout}`]: true,\n              [`${COMPONENT_NAME.value}-label`]: hasLabelItem,\n              [`${COMPONENT_NAME.value}-label--${props.mode}`]: true,\n            },\n          ]}\n        >\n          {timelineItems.map((item, index) => (\n            <TimelineItem\n              {...item.props}\n              index={index}\n              class={{ [`${COMPONENT_NAME.value}-item--last`]: index === timelineItems.length - 1 }}\n              v-slots={item.children}\n            ></TimelineItem>\n          ))}\n        </ul>\n      );\n    };\n  },\n});\n"],"names":["name","props","theme","reverse","layout","globalAlign","mode","provide","_createVNode"],"mappings":"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"}