{"version":3,"file":"Timeline.mjs","sources":["../../../../../../packages/components/timeline/src/Timeline.tsx"],"sourcesContent":["import type { SlotsType } from 'vue';\nimport { LoadingOutlined } from '@ant-design/icons-vue';\nimport { classNames, filterEmpty, initDefaultProps } from '@antdv/utils';\nimport { cloneVNode, defineComponent } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\n\nimport useStyle from '../style';\nimport { timelineProps } from './props';\nimport TimelineItem from './TimelineItem';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ATimeline',\n  inheritAttrs: false,\n  props: initDefaultProps(timelineProps(), {\n    reverse: false,\n    mode: '',\n  }),\n  slots: Object as SlotsType<{\n    pending?: any\n    pendingDot?: any\n    default?: any\n  }>,\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction } = useConfigInject('timeline', props);\n\n    // style\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const getPositionCls = (ele, idx: number) => {\n      const eleProps = ele.props || {};\n      if (props.mode === 'alternate') {\n        if (eleProps.position === 'right') return `${prefixCls.value}-item-right`;\n        if (eleProps.position === 'left') return `${prefixCls.value}-item-left`;\n        return idx % 2 === 0 ? `${prefixCls.value}-item-left` : `${prefixCls.value}-item-right`;\n      }\n      if (props.mode === 'left') return `${prefixCls.value}-item-left`;\n      if (props.mode === 'right') return `${prefixCls.value}-item-right`;\n      if (eleProps.position === 'right') return `${prefixCls.value}-item-right`;\n      return '';\n    };\n\n    return () => {\n      const {\n        pending = slots.pending?.(),\n        pendingDot = slots.pendingDot?.(),\n        reverse,\n        mode,\n      } = props;\n      const pendingNode = typeof pending === 'boolean' ? null : pending;\n      const children = filterEmpty(slots.default?.());\n\n      const pendingItem = pending\n        ? (\n            <TimelineItem pending={!!pending} dot={pendingDot || <LoadingOutlined />}>\n              {pendingNode}\n            </TimelineItem>\n          )\n        : null;\n\n      if (pendingItem)\n        children.push(pendingItem);\n\n      const timeLineItems = reverse ? children.reverse() : children;\n\n      const itemsCount = timeLineItems.length;\n      const lastCls = `${prefixCls.value}-item-last`;\n      const items = timeLineItems.map((ele, idx) => {\n        const pendingClass = idx === itemsCount - 2 ? lastCls : '';\n        const readyClass = idx === itemsCount - 1 ? lastCls : '';\n        return cloneVNode(ele, {\n          class: classNames([\n            (!reverse && !!pending) ? pendingClass : readyClass,\n            getPositionCls(ele, idx),\n          ]),\n        });\n      });\n      const hasLabelItem = timeLineItems.some(\n        item => !!(item.props?.label || item.children?.label),\n      );\n      const classString = classNames(\n        prefixCls.value,\n        {\n          [`${prefixCls.value}-pending`]: !!pending,\n          [`${prefixCls.value}-reverse`]: !!reverse,\n          [`${prefixCls.value}-${mode}`]: !!mode && !hasLabelItem,\n          [`${prefixCls.value}-label`]: hasLabelItem,\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        },\n        attrs.class,\n        hashId.value,\n      );\n      return wrapSSR(\n        <ul {...attrs} class={classString}>\n          {items}\n        </ul>,\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","timelineProps","reverse","mode","slots","Object","setup","attrs","prefixCls","direction","useConfigInject","wrapSSR","hashId","useStyle","getPositionCls","ele","idx","eleProps","position","value","pending","pendingDot","pendingNode","children","filterEmpty","default","pendingItem","_createVNode","TimelineItem","LoadingOutlined","push","timeLineItems","itemsCount","length","lastCls","items","map","pendingClass","readyClass","cloneVNode","class","classNames","hasLabelItem","some","item","label","classString"],"mappings":"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"}