xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 5.08 kB
Source Map (JSON)
{"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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"}