{"version":3,"file":"Progress.cjs","sources":["../../../../../../packages/components/progress/src/Progress.tsx"],"sourcesContent":["import type { CustomSlotsType, VueNode } from '@antdv/types';\nimport { CheckCircleFilled, CheckOutlined, CloseCircleFilled, CloseOutlined } from '@ant-design/icons-vue';\nimport { progressStatuses } from '@antdv/constants';\nimport { devWarning, initDefaultProps } from '@antdv/utils';\nimport { computed, defineComponent } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport Circle from './Circle';\nimport Line from './Line';\nimport { progressProps } from './props';\nimport Steps from './Steps';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AProgress',\n  inheritAttrs: false,\n  props: initDefaultProps(progressProps(), {\n    type: 'line',\n    percent: 0,\n    showInfo: true,\n    // null for different theme definition\n    trailColor: null,\n    size: 'default',\n    strokeLinecap: 'round',\n  }),\n  slots: Object as CustomSlotsType<{\n    default?: any\n    format?: any\n  }>,\n  setup(props, { slots, attrs }) {\n    const { prefixCls, direction } = useConfigInject('progress', props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    if (process.env.NODE_ENV !== 'production') {\n      devWarning(\n        'successPercent' in props,\n        'Progress',\n        '`successPercent` is deprecated. Please use `success.percent` instead.',\n      );\n\n      devWarning('width' in props, 'Progress', '`width` is deprecated. Please use `size` instead.');\n    }\n    const strokeColorNotArray = computed(() =>\n      Array.isArray(props.strokeColor) ? props.strokeColor[0] : props.strokeColor,\n    );\n    const percentNumber = computed(() => {\n      const { percent = 0 } = props;\n      const successPercent = getSuccessPercent(props);\n      return Number.parseInt(\n        successPercent !== undefined ? successPercent.toString() : percent.toString(),\n        10,\n      );\n    });\n\n    const progressStatus = computed(() => {\n      const { status } = props;\n      if (!progressStatuses.includes(status) && percentNumber.value >= 100)\n        return 'success';\n\n      return status || 'normal';\n    });\n\n    const classString = computed(() => {\n      const { type, showInfo, size } = props;\n      const pre = prefixCls.value;\n      return {\n        [pre]: true,\n        [`${pre}-inline-circle`]: type === 'circle' && getSize(size, 'circle').width <= 20,\n        [`${pre}-${(type === 'dashboard' && 'circle') || type}`]: true,\n        [`${pre}-status-${progressStatus.value}`]: true,\n        [`${pre}-show-info`]: showInfo,\n        [`${pre}-${size}`]: size,\n        [`${pre}-rtl`]: direction.value === 'rtl',\n        [hashId.value]: true,\n      };\n    });\n\n    const strokeColorNotGradient = computed(() =>\n      typeof props.strokeColor === 'string' || Array.isArray(props.strokeColor)\n        ? props.strokeColor\n        : undefined,\n    );\n\n    const renderProcessInfo = () => {\n      const { showInfo, format, type, percent, title } = props;\n      const successPercent = getSuccessPercent(props);\n      if (!showInfo) return null;\n\n      let text: VueNode;\n      const textFormatter = format || slots?.format || ((val: number) => `${val}%`);\n      const isLineType = type === 'line';\n      if (\n        format\n        || slots?.format\n        || (progressStatus.value !== 'exception' && progressStatus.value !== 'success')\n      ) {\n        text = textFormatter(validProgress(percent), validProgress(successPercent));\n      }\n      else if (progressStatus.value === 'exception') {\n        text = isLineType ? <CloseCircleFilled /> : <CloseOutlined />;\n      }\n      else if (progressStatus.value === 'success') {\n        text = isLineType ? <CheckCircleFilled /> : <CheckOutlined />;\n      }\n\n      return (\n        <span\n          class={`${prefixCls.value}-text`}\n          title={title === undefined && typeof text === 'string' ? text : undefined}\n        >\n          {text}\n        </span>\n      );\n    };\n\n    return () => {\n      const { type, steps, title } = props;\n      const { class: cls, ...restAttrs } = attrs;\n      const progressInfo = renderProcessInfo();\n      let progress: VueNode;\n      // Render progress shape\n      if (type === 'line') {\n        progress = steps\n          ? (\n              <Steps\n                {...props}\n                strokeColor={strokeColorNotGradient.value}\n                prefixCls={prefixCls.value}\n                steps={steps}\n              >\n                {progressInfo}\n              </Steps>\n            )\n          : (\n              <Line\n                {...props}\n                strokeColor={strokeColorNotArray.value}\n                prefixCls={prefixCls.value}\n                direction={direction.value}\n              >\n                {progressInfo}\n              </Line>\n            );\n      } else if (type === 'circle' || type === 'dashboard') {\n        progress = (\n          <Circle\n            {...props}\n            prefixCls={prefixCls.value}\n            strokeColor={strokeColorNotArray.value}\n            progressStatus={progressStatus.value}\n          >\n            {progressInfo}\n          </Circle>\n        );\n      }\n      return wrapSSR(\n        <div role=\"progressbar\" {...restAttrs} class={[classString.value, cls]} title={title}>\n          {progress}\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","progressProps","type","percent","showInfo","trailColor","size","strokeLinecap","slots","Object","setup","attrs","prefixCls","direction","useConfigInject","wrapSSR","hashId","useStyle","process","env","NODE_ENV","devWarning","strokeColorNotArray","computed","Array","isArray","strokeColor","percentNumber","successPercent","getSuccessPercent","Number","parseInt","undefined","toString","progressStatus","status","progressStatuses","includes","value","classString","pre","getSize","width","strokeColorNotGradient","renderProcessInfo","format","title","text","textFormatter","val","isLineType","validProgress","_createVNode","CloseCircleFilled","CloseOutlined","CheckCircleFilled","CheckOutlined","steps","class","cls","restAttrs","progressInfo","progress","Steps","default","Line","Circle"],"mappings":"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"}