UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

80 lines (72 loc) 2.59 kB
/** * MSKCC 2021, 2024 */ 'use strict'; 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;