{"version":3,"file":"progress.mjs","sources":["../../../common/js/progress/const.ts","../../../components/progress/progress.tsx"],"sourcesContent":["export const PRO_THEME = {\n  LINE: 'line',\n  PLUMP: 'plump',\n  CIRCLE: 'circle',\n};\nexport const CIRCLE_SIZE = {\n  SMALL: 'small',\n  MEDIUM: 'medium',\n  LARGE: 'large',\n};\nexport const CIRCLE_SIZE_PX = {\n  SMALL: 72,\n  MEDIUM: 112,\n  LARGE: 160,\n};\nexport const CIRCLE_FONT_SIZE_RATIO = {\n  SMALL: 14 / CIRCLE_SIZE_PX.SMALL,\n  MEDIUM: 20 / CIRCLE_SIZE_PX.MEDIUM,\n  LARGE: 36 / CIRCLE_SIZE_PX.LARGE,\n};\nexport const STATUS_TEXT = ['success', 'error', 'warning', 'active', 'normal'];\nexport const STATUS_ICON = ['success', 'error', 'warning'];\n\n// 进度大于 10 ，进度百分比显示在内部；进度百分比小于 10 进度显示在外部\nexport const PLUMP_SEPARATE = 10;\n\nexport const MOBILE_CIRCLE_SIZE_PX = {\n  DEFAULT: 112,\n  MICRO: 24,\n};\n\nexport default {\n  PRO_THEME,\n  CIRCLE_SIZE,\n  CIRCLE_SIZE_PX,\n  STATUS_TEXT,\n  STATUS_ICON,\n  PLUMP_SEPARATE,\n};\n","import { defineComponent, VNode, computed, CSSProperties, ref, nextTick } from 'vue';\nimport {\n  CloseCircleFilledIcon as TdCloseCircleFilledIcon,\n  CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n  ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n  CloseIcon as TdCloseIcon,\n  CheckIcon as TdCheckIcon,\n  ErrorIcon as TdErrorIcon,\n} from 'tdesign-icons-vue-next';\n\nimport { getBackgroundColor } from '@tdesign/common-js/utils/helper';\nimport {\n  PRO_THEME,\n  CIRCLE_SIZE,\n  CIRCLE_SIZE_PX,\n  STATUS_ICON,\n  CIRCLE_FONT_SIZE_RATIO,\n} from '@tdesign/common-js/progress/const';\nimport props from './props';\n\nimport { useTNodeJSX, useGlobalIcon, usePrefixClass, useResizeObserver } from '@tdesign/shared-hooks';\n\nimport { isObject, isString } from 'lodash-es';\n\nexport default defineComponent({\n  name: 'TProgress',\n  props,\n  setup(props) {\n    const renderTNodeJSX = useTNodeJSX();\n    const classPrefix = usePrefixClass();\n    const COMPONENT_NAME = usePrefixClass('progress');\n    const { CloseCircleFilledIcon, CheckCircleFilledIcon, ErrorCircleFilledIcon, CloseIcon, CheckIcon, ErrorIcon } =\n      useGlobalIcon({\n        CloseCircleFilledIcon: TdCloseCircleFilledIcon,\n        CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n        ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n        CloseIcon: TdCloseIcon,\n        CheckIcon: TdCheckIcon,\n        ErrorIcon: TdErrorIcon,\n      });\n\n    const CIRCLE_ICONS_MAP = {\n      success: CheckIcon,\n      warning: ErrorIcon,\n      error: CloseIcon,\n    };\n    const NORMAL_ICONS_MAP = {\n      success: CheckCircleFilledIcon,\n      warning: ErrorCircleFilledIcon,\n      error: CloseCircleFilledIcon,\n    };\n\n    const statusStyle = computed(() => {\n      if (!props.status && props.percentage >= 100) {\n        return 'success';\n      }\n      return props.status || 'default';\n    });\n\n    const trackBgStyle = computed(() => {\n      const style: CSSProperties = {};\n      if (props.strokeWidth) {\n        const height = isString(props.strokeWidth) ? props.strokeWidth : `${props.strokeWidth}px`;\n        style.height = height;\n        style.borderRadius = height;\n      }\n      if (props.trackColor) {\n        style.backgroundColor = props.trackColor;\n      }\n      return style;\n    });\n\n    const barStyle = computed(() => {\n      return {\n        width: `${props.percentage}%`,\n        background: props.color && getBackgroundColor(props.color),\n      };\n    });\n\n    const circlePathStyle = computed(() => {\n      const strokeColor = isObject(props.color) ? '' : props.color;\n      return {\n        stroke: strokeColor,\n      };\n    });\n\n    const circleOuterStyle = computed(() => {\n      const strokeColor = isObject(props.trackColor) ? '' : props.trackColor;\n      return {\n        stroke: strokeColor,\n      };\n    });\n\n    // theme=circle 获取直径\n    const diameter = computed(() => {\n      let diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n      if (!props.size) {\n        return diameterValue;\n      }\n      const { SMALL, LARGE, MEDIUM } = CIRCLE_SIZE;\n      switch (props.size) {\n        case SMALL:\n          diameterValue = CIRCLE_SIZE_PX.SMALL;\n          break;\n        case MEDIUM:\n          diameterValue = CIRCLE_SIZE_PX.MEDIUM;\n          break;\n        case LARGE:\n          diameterValue = CIRCLE_SIZE_PX.LARGE;\n          break;\n        default:\n          const customSize = Number(props.size);\n          diameterValue = !isNaN(customSize) && customSize > 0 ? customSize : CIRCLE_SIZE_PX.MEDIUM;\n          break;\n      }\n      return diameterValue;\n    });\n\n    const rPoints = computed(() => {\n      return diameter.value / 2;\n    });\n\n    const radius = computed(() => {\n      return rPoints.value - circleStrokeWidth.value / 2;\n    });\n\n    const circleStyle = computed(() => {\n      if (props.theme !== PRO_THEME.CIRCLE) {\n        return {};\n      }\n\n      let fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.MEDIUM;\n      if (diameter.value <= CIRCLE_SIZE_PX.SMALL) {\n        fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.SMALL;\n      } else if (diameter.value >= CIRCLE_SIZE_PX.LARGE) {\n        fontSize = diameter.value * CIRCLE_FONT_SIZE_RATIO.LARGE;\n      }\n\n      return {\n        width: `${diameter.value}px`,\n        height: `${diameter.value}px`,\n        fontSize: `${fontSize}px`,\n      };\n    });\n\n    const circleStrokeWidth = computed(() => {\n      const defaultWidth = props.size === CIRCLE_SIZE.SMALL ? 4 : 6;\n      return props.strokeWidth ? Number(props.strokeWidth) : defaultWidth;\n    });\n\n    const strokeDashArr = computed(() => {\n      const radius = (diameter.value - circleStrokeWidth.value) / 2;\n      const perimeter = Math.PI * 2 * radius;\n      const percent = props.percentage / 100;\n      return `${perimeter * percent}  ${perimeter * (1 - percent)}`;\n    });\n\n    const getIconMap = computed(() => {\n      return props.theme === PRO_THEME.CIRCLE ? CIRCLE_ICONS_MAP : NORMAL_ICONS_MAP;\n    });\n\n    const getLabelContent = () => {\n      let labelContentRender: string | VNode = `${props.percentage}%`;\n      const status = props.status || '';\n      if (STATUS_ICON.includes(status) && props.theme !== PRO_THEME.PLUMP) {\n        const component = getIconMap.value[status as keyof typeof CIRCLE_ICONS_MAP];\n        if (component) {\n          labelContentRender = <component class={[`${COMPONENT_NAME.value}__icon`]}></component>;\n        }\n      }\n      return labelContentRender;\n    };\n\n    // 当文字小于进度条宽度时，文字在进度条外部，否则在内部\n    const infoIsOut = ref(true);\n    const infoRef = ref<HTMLDivElement>();\n\n    const separateClasses = computed(() => {\n      return infoIsOut.value ? `${COMPONENT_NAME.value}--over-ten` : `${COMPONENT_NAME.value}--under-ten`;\n    });\n\n    async function updateInfoIsOut() {\n      if (props.theme === PRO_THEME.PLUMP) {\n        if (!infoRef.value || props.label === false) return;\n        await nextTick();\n        const infoEl =\n          infoRef.value.querySelector(`.${COMPONENT_NAME.value}__info`) || infoRef.value.nextElementSibling;\n        infoIsOut.value = infoRef.value.clientWidth > infoEl?.clientWidth + 10;\n      }\n    }\n\n    useResizeObserver(infoRef, updateInfoIsOut);\n\n    return () => {\n      const labelContent = (\n        <div class={`${COMPONENT_NAME.value}__info`}>{renderTNodeJSX('label', getLabelContent())}</div>\n      );\n\n      return (\n        <div class={COMPONENT_NAME.value}>\n          {props.theme === PRO_THEME.LINE && (\n            <div\n              class={[\n                `${COMPONENT_NAME.value}--thin`,\n                `${COMPONENT_NAME.value}--status--${statusStyle.value}`,\n                { [`${classPrefix.value}-size-s`]: props.size === 'small' },\n              ]}\n            >\n              <div class={`${COMPONENT_NAME.value}__bar`} style={trackBgStyle.value}>\n                <div class={`${COMPONENT_NAME.value}__inner`} style={barStyle.value}></div>\n              </div>\n              {labelContent}\n            </div>\n          )}\n\n          {props.theme === PRO_THEME.PLUMP && (\n            <div\n              class={[\n                `${COMPONENT_NAME.value}__bar ${COMPONENT_NAME.value}--plump ${separateClasses.value}`,\n                { [`${COMPONENT_NAME.value}--status--${statusStyle.value}`]: statusStyle.value },\n                { [`${classPrefix.value}-size-s`]: props.size === 'small' },\n              ]}\n              style={trackBgStyle.value}\n            >\n              <div class={`${COMPONENT_NAME.value}__inner`} ref={infoRef} style={barStyle.value}>\n                {infoIsOut.value && labelContent}\n              </div>\n              {!infoIsOut.value && labelContent}\n            </div>\n          )}\n\n          {props.theme === PRO_THEME.CIRCLE && (\n            <div\n              class={`${COMPONENT_NAME.value}--circle ${COMPONENT_NAME.value}--status--${statusStyle.value}`}\n              style={circleStyle.value}\n            >\n              {labelContent}\n              <svg width={diameter.value} height={diameter.value} viewBox={`0 0 ${diameter.value} ${diameter.value}`}>\n                <circle\n                  cx={rPoints.value}\n                  cy={rPoints.value}\n                  r={radius.value}\n                  stroke-width={circleStrokeWidth.value}\n                  fill=\"none\"\n                  class={[`${COMPONENT_NAME.value}__circle-outer`]}\n                  style={circleOuterStyle.value}\n                />\n                {props.percentage > 0 && (\n                  <circle\n                    cx={rPoints.value}\n                    cy={rPoints.value}\n                    r={radius.value}\n                    stroke-width={circleStrokeWidth.value}\n                    fill=\"none\"\n                    stroke-linecap=\"round\"\n                    class={[`${COMPONENT_NAME.value}__circle-inner`]}\n                    transform={`matrix(0,-1,1,0,0,${diameter.value})`}\n                    stroke-dasharray={strokeDashArr.value}\n                    style={circlePathStyle.value}\n                  />\n                )}\n              </svg>\n            </div>\n          )}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["PRO_THEME","LINE","PLUMP","CIRCLE","CIRCLE_SIZE","SMALL","MEDIUM","LARGE","CIRCLE_SIZE_PX","CIRCLE_FONT_SIZE_RATIO","STATUS_TEXT","STATUS_ICON","PLUMP_SEPARATE","MOBILE_CIRCLE_SIZE_PX","DEFAULT","MICRO","defineComponent","name","props","setup","renderTNodeJSX","useTNodeJSX","classPrefix","usePrefixClass","COMPONENT_NAME","_useGlobalIcon","useGlobalIcon","CloseCircleFilledIcon","TdCloseCircleFilledIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","CloseIcon","TdCloseIcon","CheckIcon","TdCheckIcon","ErrorIcon","TdErrorIcon","CIRCLE_ICONS_MAP","success","warning","error","NORMAL_ICONS_MAP","statusStyle","computed","status","percentage","trackBgStyle","style","strokeWidth","height","isString","concat","borderRadius","trackColor","backgroundColor","barStyle","width","background","color","getBackgroundColor","circlePathStyle","strokeColor","isObject","stroke","circleOuterStyle","diameter","diameterValue","size","customSize","Number","isNaN","rPoints","value","radius","circleStrokeWidth","circleStyle","theme","fontSize","defaultWidth","strokeDashArr","perimeter","Math","PI","percent","getIconMap","getLabelContent","labelContentRender","includes","component","_createVNode","infoIsOut","ref","infoRef","separateClasses","updateInfoIsOut","_updateInfoIsOut","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","infoEl","wrap","_context","prev","next","label","abrupt","nextTick","querySelector","nextElementSibling","clientWidth","stop","useResizeObserver","labelContent","_defineProperty"],"mappings":"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"}