@coreui/react
Version:
UI Components Library for React.js
42 lines (39 loc) • 2.28 kB
JavaScript
import { __rest, __assign } from '../../node_modules/tslib/tslib.es6.js';
import React, { forwardRef, useContext } from 'react';
import PropTypes from 'prop-types';
import classNames from '../../_virtual/index.js';
import { CProgressStackedContext } from './CProgressStackedContext.js';
import { CProgressBar } from './CProgressBar.js';
var CProgress = forwardRef(function (_a, ref) {
var children = _a.children, className = _a.className, height = _a.height, progressBarClassName = _a.progressBarClassName, thin = _a.thin, value = _a.value, white = _a.white, rest = __rest(_a, ["children", "className", "height", "progressBarClassName", "thin", "value", "white"]);
var stacked = useContext(CProgressStackedContext).stacked;
return (React.createElement("div", __assign({ className: classNames('progress', {
'progress-thin': thin,
'progress-white': white,
}, className) }, (value !== undefined && {
role: 'progressbar',
'aria-valuenow': value,
'aria-valuemin': 0,
'aria-valuemax': 100,
}), { style: __assign(__assign({}, (height ? { height: "".concat(height, "px") } : {})), (stacked ? { width: "".concat(value, "%") } : {})), ref: ref }), React.Children.toArray(children).some(
// @ts-expect-error displayName is set in the CProgressBar component
function (child) { return child.type && child.type.displayName === 'CProgressBar'; }) ? (React.Children.map(children, function (child) {
// @ts-expect-error displayName is set in the CProgressBar component
if (React.isValidElement(child) && child.type.displayName === 'CProgressBar') {
return React.cloneElement(child, __assign(__assign({}, (value && { value: value })), rest));
}
return;
})) : (React.createElement(CProgressBar, __assign({}, (progressBarClassName && { className: progressBarClassName }), { value: value }, rest), children))));
});
CProgress.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
height: PropTypes.number,
progressBarClassName: PropTypes.string,
thin: PropTypes.bool,
value: PropTypes.number,
white: PropTypes.bool,
};
CProgress.displayName = 'CProgress';
export { CProgress };
//# sourceMappingURL=CProgress.js.map