function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import * as React from 'react'; import { Circle as RCCircle } from 'rc-progress'; import classNames from 'classnames'; import { validProgress } from './utils'; var statusColorMap = { normal: '#108ee9', exception: '#ff5500', success: '#87d068' }; function getPercentage(_ref) { var percent = _ref.percent, successPercent = _ref.successPercent; var ptg = validProgress(percent); if (!successPercent) { return ptg; } var successPtg = validProgress(successPercent); return [successPercent, validProgress(ptg - successPtg)]; } function getStrokeColor(_ref2) { var progressStatus = _ref2.progressStatus, successPercent = _ref2.successPercent, strokeColor = _ref2.strokeColor; var color = strokeColor || statusColorMap[progressStatus]; if (!successPercent) { return color; } return [statusColorMap.success, color]; } var Circle = function Circle(props) { var prefixCls = props.prefixCls, width = props.width, strokeWidth = props.strokeWidth, trailColor = props.trailColor, strokeLinecap = props.strokeLinecap, gapPosition = props.gapPosition, gapDegree = props.gapDegree, type = props.type, children = props.children; var circleSize = width || 120; var circleStyle = { width: circleSize, height: circleSize, fontSize: circleSize * 0.15 + 6 }; var circleWidth = strokeWidth || 6; var gapPos = gapPosition || type === 'dashboard' && 'bottom' || 'top'; var gapDeg = gapDegree || (type === 'dashboard' ? 75 : undefined); var strokeColor = getStrokeColor(props); var isGradient = Object.prototype.toString.call(strokeColor) === '[object Object]'; var wrapperClassName = classNames("".concat(prefixCls, "-inner"), _defineProperty({}, "".concat(prefixCls, "-circle-gradient"), isGradient)); return /*#__PURE__*/React.createElement("div", { className: wrapperClassName, style: circleStyle }, /*#__PURE__*/React.createElement(RCCircle, { percent: getPercentage(props), strokeWidth: circleWidth, trailWidth: circleWidth, strokeColor: strokeColor, strokeLinecap: strokeLinecap, trailColor: trailColor, prefixCls: prefixCls, gapDegree: gapDeg, gapPosition: gapPos }), children); }; export default Circle;