UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

91 lines (89 loc) β€’ 2.63 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _colors = require("@ant-design/colors"); var _classnames = _interopRequireDefault(require("classnames")); var _rcProgress = require("rc-progress"); var React = _interopRequireWildcard(require("react")); var _utils = require("./utils"); function getPercentage({ percent, success, successPercent }) { const realSuccessPercent = (0, _utils.validProgress)((0, _utils.getSuccessPercent)({ success, successPercent })); return [realSuccessPercent, (0, _utils.validProgress)((0, _utils.validProgress)(percent) - realSuccessPercent)]; } function getStrokeColor({ success = {}, strokeColor }) { const { strokeColor: successColor } = success; return [successColor || _colors.presetPrimaryColors.green, strokeColor || null]; } const Circle = props => { const { prefixCls, width, strokeWidth, trailColor = null, strokeLinecap = 'round', gapPosition, gapDegree, type, children, success } = props; const circleSize = width || 120; const circleStyle = { width: circleSize, height: circleSize, fontSize: circleSize * 0.15 + 6 }; const circleWidth = strokeWidth || 6; const gapPos = gapPosition || type === 'dashboard' && 'bottom' || undefined; const getGapDegree = () => { // Support gapDeg = 0 when type = 'dashboard' if (gapDegree || gapDegree === 0) { return gapDegree; } if (type === 'dashboard') { return 75; } return undefined; }; // using className to style stroke color const isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]'; const strokeColor = getStrokeColor({ success, strokeColor: props.strokeColor }); const wrapperClassName = (0, _classnames.default)(`${prefixCls}-inner`, { [`${prefixCls}-circle-gradient`]: isGradient }); return /*#__PURE__*/React.createElement("div", { className: wrapperClassName, style: circleStyle }, /*#__PURE__*/React.createElement(_rcProgress.Circle, { percent: getPercentage(props), strokeWidth: circleWidth, trailWidth: circleWidth, strokeColor: strokeColor, strokeLinecap: strokeLinecap, trailColor: trailColor, prefixCls: prefixCls, gapDegree: getGapDegree(), gapPosition: gapPos }), children); }; var _default = Circle; exports.default = _default;