tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 20.4 kB
Source Map (JSON)
{"version":3,"file":"progress.mjs","sources":["../../../components/progress/progress.tsx"],"sourcesContent":["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 { PRO_THEME, CIRCLE_SIZE, CIRCLE_SIZE_PX, STATUS_ICON, CIRCLE_FONT_SIZE_RATIO } from './consts';\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 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>(null);\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 class={`${COMPONENT_NAME.value}--thin ${COMPONENT_NAME.value}--status--${statusStyle.value}`}>\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 ]}\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":["defineComponent","name","props","setup","renderTNodeJSX","useTNodeJSX","COMPONENT_NAME","usePrefixClass","_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","CIRCLE_SIZE_PX","MEDIUM","size","SMALL","CIRCLE_SIZE","LARGE","customSize","Number","isNaN","rPoints","value","radius","circleStrokeWidth","circleStyle","theme","PRO_THEME","CIRCLE","fontSize","CIRCLE_FONT_SIZE_RATIO","defaultWidth","strokeDashArr","perimeter","Math","PI","percent","getIconMap","getLabelContent","labelContentRender","STATUS_ICON","includes","PLUMP","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","LINE","_defineProperty"],"mappings":"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"}