UNPKG

@talend/react-components

Version:
83 lines (82 loc) 2.36 kB
"use strict"; 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