{"version":3,"file":"Line.cjs","sources":["../../../../../../packages/vue-components/vc-progress/src/Line.tsx"],"sourcesContent":["import { useRefs } from '@antdv/hooks';\nimport { initDefaultProps } from '@antdv/utils';\nimport { computed, defineComponent } from 'vue';\nimport { defaultProps, useTransitionDuration } from './common';\nimport { propTypes } from './types';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ProgressLine',\n  props: initDefaultProps(propTypes, defaultProps),\n  setup(props) {\n    const percentList = computed(() => {\n      const { percent } = props;\n      return Array.isArray(percent) ? percent : [percent];\n    });\n    const percentListProps = computed(() => {\n      const { prefixCls, strokeLinecap, strokeWidth, transition } = props;\n      let stackPtg = 0;\n      return percentList.value.map((ptg, index) => {\n        let dashPercent = 1;\n        switch (strokeLinecap) {\n          case 'round':\n            dashPercent = 1 - strokeWidth / 100;\n            break;\n          case 'square':\n            dashPercent = 1 - strokeWidth / 2 / 100;\n            break;\n          default:\n            dashPercent = 1;\n            break;\n        }\n        const pathStyle = {\n          strokeDasharray: `${ptg * dashPercent}px, 100px`,\n          strokeDashoffset: `-${stackPtg}px`,\n          transition:\n            transition\n            || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear',\n        };\n        const color\n          = strokeColorList.value[index] || strokeColorList.value[strokeColorList.value.length - 1];\n\n        stackPtg += ptg;\n\n        const pathProps = {\n          'key': index,\n          'd': pathString.value,\n          'stroke-linecap': strokeLinecap,\n          'stroke': color as string,\n          'stroke-width': strokeWidth,\n          'fill-opacity': '0',\n          'class': `${prefixCls}-line-path`,\n          'style': pathStyle,\n        };\n\n        return pathProps;\n      });\n    });\n    const strokeColorList = computed(() => {\n      const { strokeColor } = props;\n      return Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n    });\n    const [setRef, paths] = useRefs();\n    useTransitionDuration(paths);\n    const center = computed(() => props.strokeWidth / 2);\n    const right = computed(() => 100 - props.strokeWidth / 2);\n\n    const pathString = computed(\n      () => `M ${props.strokeLinecap === 'round' ? center.value : 0},${center.value}\n    L ${props.strokeLinecap === 'round' ? right.value : 100},${center.value}`,\n    );\n\n    const viewBoxString = computed(() => `0 0 100 ${props.strokeWidth}`);\n\n    const pathFirst = computed(() => ({\n      'd': pathString.value,\n      'stroke-linecap': props.strokeLinecap,\n      'stroke': props.trailColor,\n      'stroke-width': props.trailWidth || props.strokeWidth,\n      'fill-opacity': '0',\n      'class': `${props.prefixCls}-line-trail`,\n    }));\n\n    return () => {\n      const {\n        percent,\n        prefixCls,\n        strokeColor,\n        strokeLinecap,\n        strokeWidth,\n        trailColor,\n        trailWidth,\n        transition,\n        ...restProps\n      } = props;\n\n      delete restProps.gapPosition;\n\n      return (\n        <svg\n          class={`${prefixCls}-line`}\n          viewBox={viewBoxString.value}\n          preserveAspectRatio=\"none\"\n          {...restProps}\n        >\n          <path {...pathFirst.value} />\n          {percentListProps.value.map((pathProps, index) => {\n            return <path ref={setRef(index)} {...pathProps} />;\n          })}\n        </svg>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","props","initDefaultProps","propTypes","defaultProps","setup","percentList","computed","percent","Array","isArray","percentListProps","prefixCls","strokeLinecap","strokeWidth","transition","stackPtg","value","map","ptg","index","dashPercent","pathStyle","strokeDasharray","strokeDashoffset","color","strokeColorList","length","pathProps","pathString","strokeColor","setRef","paths","useRefs","useTransitionDuration","center","right","viewBoxString","pathFirst","trailColor","trailWidth","restProps","gapPosition","_createVNode"],"mappings":"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"}