@coreui/react
Version:
CoreUI React 17 Bootstrap 4 components
65 lines (56 loc) • 3.23 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
import React, { useContext } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { Context } from './CProgress'; //component - CoreUI / CProgressBar
var CProgressBar = function CProgressBar(directProps) {
var _useContext = useContext(Context),
inheritedProps = _useContext.inheritedProps;
var props = _objectSpread(_objectSpread({}, inheritedProps), directProps);
var children = props.children,
className = props.className,
innerRef = props.innerRef,
color = props.color,
striped = props.striped,
animated = props.animated,
precision = props.precision,
showPercentage = props.showPercentage,
showValue = props.showValue,
max = props.max,
value = props.value,
attributes = _objectWithoutPropertiesLoose(props, ["children", "className", "innerRef", "color", "striped", "animated", "precision", "showPercentage", "showValue", "max", "value"]); // render
var progressBarClasses = classNames('progress-bar', animated && 'progress-bar-animated', (striped || animated) && 'progress-bar-striped', color && "bg-" + color, className);
var valLabel = Number(value).toFixed(precision);
var percentLabel = Number(value / max * 100).toFixed(precision) + '%';
return /*#__PURE__*/React.createElement("div", _extends({
className: progressBarClasses,
style: {
width: value / max * 100 + "%"
},
role: "progressbar",
"aria-valuenow": value,
"aria-valuemin": "0",
"aria-valuemax": max
}, attributes, {
ref: innerRef
}), showPercentage ? percentLabel : showValue ? valLabel : children);
};
CProgressBar.propTypes = {
children: PropTypes.node,
className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),
//
innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),
value: PropTypes.number,
max: PropTypes.number,
animated: PropTypes.bool,
striped: PropTypes.bool,
color: PropTypes.string,
precision: PropTypes.number,
showPercentage: PropTypes.bool,
showValue: PropTypes.bool
};
export default CProgressBar;