{"version":3,"file":"line.vue2.mjs","sources":["../../../../../../packages/components/progress/src/line.vue"],"sourcesContent":["<script lang=\"ts\">\n  import type { PropType, StyleValue } from 'vue'\n  import { computed, defineComponent } from 'vue'\n  import { getNamespace } from '../../../utils/global-config'\n  import { addUnit } from '../../../shared/utils'\n  import { isFunction, isString } from '../../../utils/is'\n  import type { ProgressStatus, ProgressSize } from './type'\n\n  const DEFAULT_STROKE_WIDTH = {\n    small: 6,\n    normal: 8,\n    large: 10\n  }\n\n  export default defineComponent({\n    name: 'ProgressLine',\n    props: {\n      percent: {\n        type: Number,\n        default: 0\n      },\n      animation: {\n        type: Boolean,\n        default: false\n      },\n      size: {\n        type: String as PropType<ProgressSize>,\n        default: 'normal'\n      },\n      strokeWidth: {\n        type: Number,\n        default: 0\n      },\n      width: {\n        type: [Number, String],\n        default: '100%'\n      },\n      color: {\n        type: [String, Function],\n        default: undefined\n      },\n      // eslint-disable-next-line vue/require-default-prop\n      trackColor: String,\n      formatText: {\n        type: Function,\n        default: undefined\n      },\n      status: {\n        type: String as PropType<ProgressStatus>,\n        default: 'primary'\n      },\n      showText: Boolean\n    },\n    setup(props) {\n      const ns = getNamespace('progress-line')\n\n      const cls = computed(() => {\n        return [ns]\n      })\n\n      const computedStrokeWidth = computed(() => {\n        if (props.strokeWidth) {\n          return props.strokeWidth\n        }\n        return DEFAULT_STROKE_WIDTH[props.size]\n      })\n\n      const trackStyle = computed(() => {\n        const style: StyleValue = {\n          width: addUnit(props.width),\n          height: addUnit(computedStrokeWidth.value),\n          backgroundColor: props.trackColor\n        }\n        return style\n      })\n\n      const getBarColor = (): string => {\n        if (isString(props.color)) {\n          return props.color\n        }\n        if (isFunction(props.color)) {\n          return props.color(props.percent) as string\n        }\n\n        if (props.status) {\n          return `var(--bn-${props.status})`\n        }\n\n        return ''\n      }\n\n      const barStyle = computed(() => {\n        const barBgColor = getBarColor()\n        const style: StyleValue = {\n          width: `${props.percent}%`,\n          background: barBgColor\n        }\n        return style\n      })\n\n      const bufferStyle = computed(() => {\n        const style: StyleValue = {}\n        if (props.animation) {\n          style.width = `${props.percent}%`\n        }\n        return style\n      })\n\n      const text = computed(() => {\n        if (isFunction(props.formatText)) {\n          return props.formatText(props.percent)\n        }\n        return props.percent + '%'\n      })\n\n      return {\n        ns,\n        cls,\n        text,\n        trackStyle,\n        barStyle,\n        bufferStyle\n      }\n    }\n  })\n</script>\n\n<template>\n  <div :class=\"cls\" aria-valuemin=\"0\" aria-valuemax=\"100\" :aria-valuenow=\"percent\">\n    <div :class=\"[`${ns}__track`]\" :style=\"trackStyle\">\n      <div\n        :class=\"[\n          `${ns}__buffer`,\n          {\n            'is-animation': animation\n          }\n        ]\"\n        :style=\"bufferStyle\"\n      ></div>\n      <div :class=\"[`${ns}__bar`]\" :style=\"barStyle\"></div>\n    </div>\n\n    <div v-if=\"showText\" :class=\"[`${ns}__text`]\">\n      <slot name=\"text\" :percent=\"percent\">\n        {{ text }}\n      </slot>\n    </div>\n  </div>\n</template>\n"],"names":[],"mappings":"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"}