acud
Version:
acg react 组件库
86 lines (85 loc) • 4.91 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _LineProgress = _interopRequireDefault(require("./LineProgress"));
var _CircleProgress = _interopRequireDefault(require("./CircleProgress"));
var _SizeContext = _interopRequireDefault(require("../config-provider/SizeContext"));
var _configProvider = require("../config-provider");
var _common = require("./common");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
/**
* @file 进度条
* @author liuhanwei
*/
var __rest = void 0 && (void 0).__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
var Progress = function Progress(_a) {
var _a$percent = _a.percent,
customizePercent = _a$percent === void 0 ? 0 : _a$percent,
_a$type = _a.type,
type = _a$type === void 0 ? 'line' : _a$type,
_a$size = _a.size,
customizeSize = _a$size === void 0 ? 'middle' : _a$size,
_a$status = _a.status,
customizeStatus = _a$status === void 0 ? 'active' : _a$status,
customizeStrokeColor = _a.strokeColor,
customizeTextColor = _a.textColor,
customizeTextSize = _a.textSize,
_a$successStyle = _a.successStyle,
successStyle = _a$successStyle === void 0 ? {} : _a$successStyle,
format = _a.format,
customizePrefixCls = _a.prefixCls,
restProps = __rest(_a, ["percent", "type", "size", "status", "strokeColor", "textColor", "textSize", "successStyle", "format", "prefixCls"]);
var _useContext = (0, _react.useContext)(_configProvider.ConfigContext),
getPrefixCls = _useContext.getPrefixCls;
var prefixCls = getPrefixCls('progress', customizePrefixCls);
var defaultSize = (0, _react.useContext)(_SizeContext["default"]) || 'small';
// size取值异常时,将使用全局size或默认值small
var size = customizeSize in _common.sizeRatioMap ? customizeSize : defaultSize;
// percent取值异常时,将使用默认值0
var percent = (0, _common.isNumber)(customizePercent) ? customizePercent : 0;
// status取值异常时,将使用默认值active
var status = customizeStatus in _common.statusColorMap ? customizeStatus : 'active';
// strokeColor取值异常时,将使用status对应的颜色
var strokeColor = (0, _common.isHexColor)(customizeStrokeColor) ? customizeStrokeColor : '';
var iconStrokeColor = strokeColor || _common.statusColorMap[status];
// 解构进度100时的样式
var successStrokeColor = successStyle.strokeColor,
successTextColor = successStyle.textColor,
successTextSize = successStyle.textSize;
var textColor = customizeTextColor;
var textSize = customizeTextSize;
// 当进度100时,若存在完成时的样式,则使用该样式
if (percent === 100) {
strokeColor = (0, _common.isHexColor)(successStrokeColor) ? successStrokeColor : strokeColor;
textColor = (0, _common.isHexColor)(successTextColor) ? successTextColor : textColor;
textSize = (0, _common.isNumber)(successTextSize) ? successTextSize : textSize;
}
// 若存在format方法,则格式化文本
var labelText = format instanceof Function ? format(percent) : "".concat(percent, "%");
var props = {
percent: percent,
size: size,
status: status,
strokeColor: strokeColor,
iconStrokeColor: iconStrokeColor,
textColor: textColor,
textSize: textSize,
labelText: labelText,
prefixCls: prefixCls
};
return type === 'circle' ? /*#__PURE__*/_react["default"].createElement(_CircleProgress["default"], (0, _extends2["default"])({}, props, restProps)) : /*#__PURE__*/_react["default"].createElement(_LineProgress["default"], (0, _extends2["default"])({}, props, restProps));
};
var _default = exports["default"] = Progress;