{"version":3,"file":"Circle.cjs","sources":["../../../../../../packages/components/progress/src/Circle.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\nimport type { ProgressProps } from './props';\nimport { initDefaultProps } from '@antdv/utils';\nimport { Circle as VCCircle } from '@antdv/vue-components';\nimport { computed, defineComponent } from 'vue';\nimport Tooltip from '../../tooltip';\nimport { progressCircleProps } from './props';\nimport { getPercentage, getSize, getStrokeColor } from './utils';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ProgressCircle',\n  inheritAttrs: false,\n  props: initDefaultProps(progressCircleProps(), {\n    trailColor: null as unknown as string,\n  }),\n  setup(props, { slots, attrs }) {\n    const CIRCLE_MIN_STROKE_WIDTH = 3;\n\n    const getMinPercent = (width: number): number => (CIRCLE_MIN_STROKE_WIDTH / width) * 100;\n\n    const originWidth = computed(() => props.width ?? 120);\n    const mergedSize = computed(() => props.size ?? [originWidth.value, originWidth.value]);\n\n    const sizeRef = computed(() => getSize(mergedSize.value as ProgressProps['size'], 'circle'));\n    const gapDeg = computed(() => {\n      // Support gapDeg = 0 when type = 'dashboard'\n      if (props.gapDegree || props.gapDegree === 0)\n        return props.gapDegree;\n\n      if (props.type === 'dashboard')\n        return 75;\n\n      return undefined;\n    });\n\n    const circleStyle = computed<CSSProperties>(() => {\n      return {\n        width: `${sizeRef.value.width}px`,\n        height: `${sizeRef.value.height}px`,\n        fontSize: `${sizeRef.value.width * 0.15 + 6}px`,\n      };\n    });\n\n    const circleWidth = computed(\n      () => props.strokeWidth ?? Math.max(getMinPercent(sizeRef.value.width), 6),\n    );\n    const gapPos = computed(\n      () => props.gapPosition || (props.type === 'dashboard' && 'bottom') || undefined,\n    );\n\n    // using className to style stroke color\n    const percent = computed(() => getPercentage(props));\n    const isGradient = computed(\n      () => Object.prototype.toString.call(props.strokeColor) === '[object Object]',\n    );\n    const strokeColor = computed(() =>\n      getStrokeColor({ success: props.success, strokeColor: props.strokeColor }),\n    );\n    const wrapperClassName = computed(() => ({\n      [`${props.prefixCls}-inner`]: true,\n      [`${props.prefixCls}-circle-gradient`]: isGradient.value,\n    }));\n\n    return () => {\n      const circleContent = (\n        <VCCircle\n          percent={percent.value}\n          strokeWidth={circleWidth.value}\n          trailWidth={circleWidth.value}\n          strokeColor={strokeColor.value}\n          strokeLinecap={props.strokeLinecap}\n          trailColor={props.trailColor}\n          prefixCls={props.prefixCls}\n          gapDegree={gapDeg.value}\n          gapPosition={gapPos.value}\n        />\n      );\n      return (\n        <div\n          {...attrs}\n          class={[wrapperClassName.value, attrs.class]}\n          style={[attrs.style as CSSProperties, circleStyle.value]}\n        >\n          {sizeRef.value.width <= 20\n            ? (\n                <Tooltip v-slots={{ title: slots.default }}>\n                  <span>{circleContent}</span>\n                </Tooltip>\n              )\n            : (\n                <>\n                  {circleContent}\n                  {slots.default?.()}\n                </>\n              )}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","progressCircleProps","trailColor","setup","slots","attrs","CIRCLE_MIN_STROKE_WIDTH","getMinPercent","width","originWidth","computed","mergedSize","size","value","sizeRef","getSize","gapDeg","gapDegree","type","undefined","circleStyle","height","fontSize","circleWidth","strokeWidth","Math","max","gapPos","gapPosition","percent","getPercentage","isGradient","Object","prototype","toString","call","strokeColor","getStrokeColor","success","wrapperClassName","prefixCls","circleContent","_createVNode","VCCircle","strokeLinecap","class","style","Tooltip","default","title","_Fragment"],"mappings":"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"}