@talend/react-components
Version:
Set of react components.
83 lines (82 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _TooltipTrigger = _interopRequireDefault(require("../TooltipTrigger"));
var _ProgressModule = _interopRequireDefault(require("./Progress.module.scss"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function normalize(percent) {
if (percent > 100) {
return 100;
}
if (percent < 0) {
return 0;
}
return percent;
}
function Progress({
id,
percent,
tooltip,
infinite,
contained
}) {
const normalizedPercent = infinite ? 100 : normalize(percent);
const style = {
width: `${normalizedPercent}%`
};
const rootClassNames = (0, _classnames.default)(_ProgressModule.default.progress, {
[_ProgressModule.default.hidden]: normalizedPercent === 0,
[_ProgressModule.default.fixed]: !contained,
[_ProgressModule.default.infinite]: infinite
});
let progress = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
style: style,
className: _ProgressModule.default['progress-percent'],
children: infinite && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: _ProgressModule.default['infinite-indicator']
})
});
if (tooltip) {
progress = /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipTrigger.default, {
label: tooltip,
tooltipPlacement: "bottom",
children: progress
});
}
let a11yProps;
if (!infinite) {
a11yProps = {
role: 'progressbar',
'aria-valuenow': normalizedPercent,
'aria-valuemin': 0,
'aria-valuemax': 100
};
} else {
a11yProps = {
role: 'status',
'aria-busy': true
};
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
id: id,
className: rootClassNames,
"aria-label": tooltip,
...a11yProps,
children: progress
});
}
Progress.displayName = 'Progress';
Progress.propTypes = {
id: _propTypes.default.string,
percent: _propTypes.default.number,
tooltip: _propTypes.default.string.isRequired,
infinite: _propTypes.default.bool,
contained: _propTypes.default.bool
};
var _default = exports.default = Progress;
//# sourceMappingURL=Progress.component.js.map