UNPKG

tdesign-vue-next

Version:
1 lines 23.1 kB
{"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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"}