text: 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 toNumber from 'lodash.tonumber';
  import { mapToCssModules, tagPropType } 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,
    style: PropTypes.object
  };
  var defaultProps = {
    tag: 'div',
    value: 0,
    max: 100,
    style: {}
  };
  
  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,
        style = props.style,
        attributes = _objectWithoutPropertiesLoose(props, ["children", "className", "barClassName", "cssModule", "value", "max", "animated", "style", "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: {
        ...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;