import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { mapToCssModules, tagPropType, toNumber } from './utils'; var propTypes = { children: PropTypes.node, bar: PropTypes.bool, multi: PropTypes.bool, tag: tagPropType, value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), max: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), animated: PropTypes.bool, striped: PropTypes.bool, color: PropTypes.string, className: PropTypes.string, barClassName: PropTypes.string, cssModule: PropTypes.object }; var defaultProps = { tag: 'div', value: 0, max: 100 }; var Progress = function Progress(props) { var children = props.children, className = props.className, barClassName = props.barClassName, cssModule = props.cssModule, value = props.value, max = props.max, animated = props.animated, striped = props.striped, color = props.color, bar = props.bar, multi = props.multi, Tag = props.tag, attributes = _objectWithoutPropertiesLoose(props, ["children", "className", "barClassName", "cssModule", "value", "max", "animated", "striped", "color", "bar", "multi", "tag"]); var percent = toNumber(value) / toNumber(max) * 100; var progressClasses = mapToCssModules(classNames(className, 'progress'), cssModule); var progressBarClasses = mapToCssModules(classNames('progress-bar', bar ? className || barClassName : barClassName, animated ? 'progress-bar-animated' : null, color ? "bg-" + color : null, striped || animated ? 'progress-bar-striped' : null), cssModule); var ProgressBar = multi ? children : React.createElement("div", { className: progressBarClasses, style: { width: percent + "%" }, role: "progressbar", "aria-valuenow": value, "aria-valuemin": "0", "aria-valuemax": max, children: children }); if (bar) { return ProgressBar; } return React.createElement(Tag, _extends({}, attributes, { className: progressClasses, children: ProgressBar })); }; Progress.propTypes = propTypes; Progress.defaultProps = defaultProps; export default Progress;