@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
80 lines (72 loc) • 2.59 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
var cx = require('classnames');
var React = require('react');
var uniqueId = require('../../../tools/uniqueId.js');
var StepperContext = require('../StepperContext.js');
var StepButton = require('./StepButton.js');
var StepContext = require('./StepContext.js');
var StepLabel = require('./StepLabel.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
const StepperStep = _ref => {
let {
label = '',
active = false,
completed = false,
disabled = false,
className,
index = 0,
icon,
children,
...rest
} = _ref;
const {
activeStep
} = React.useContext(StepperContext["default"]);
if (activeStep === index) {
active = true;
} else if (activeStep > index && !active && !disabled) {
completed = true;
} else if (activeStep < index && !active && !completed) {
disabled = true;
}
const contextValue = {
active,
completed,
disabled,
index
};
const stepId = uniqueId["default"]();
const ariaCurrent = active ? 'step' : undefined;
const ariaDisabled = disabled ? true : undefined;
const ariaLabel = label ? label : `Step ${index + 1}`;
const ariaLabelledBy = label ? `StepLabel-${stepId}` : undefined;
return /*#__PURE__*/React__default["default"].createElement(StepContext["default"].Provider, {
value: contextValue
}, /*#__PURE__*/React__default["default"].createElement("div", {
className: 'stepper-step',
role: "step",
"aria-current": ariaCurrent,
"aria-disabled": ariaDisabled,
"aria-label": ariaLabel,
"aria-labelledby": ariaLabelledBy
}, /*#__PURE__*/React__default["default"].createElement(StepButton.StepButton, _rollupPluginBabelHelpers["extends"]({
className: cx__default["default"]('step-button', {
active: !disabled && !completed,
completed
}, className),
contentClasses: cx__default["default"]('step-button-content')
}, rest), children || icon || index + 1), label && /*#__PURE__*/React__default["default"].createElement(StepLabel.StepLabel, {
id: `StepLabel-${stepId}`,
className: cx__default["default"]('label-container', {
active: !disabled && !completed
})
}, label)));
};
exports.StepperStep = StepperStep;