@itwin/itwinui-react
Version:
A react component library for iTwinUI
110 lines (109 loc) • 3.21 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true,
});
Object.defineProperty(exports, 'Stepper', {
enumerable: true,
get: function () {
return Stepper;
},
});
const _interop_require_default = require('@swc/helpers/_/_interop_require_default');
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
const _classnames = /*#__PURE__*/ _interop_require_default._(
require('classnames'),
);
const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react'));
const _index = require('../../utils/index.js');
const _StepperStep = require('./StepperStep.js');
const _react1 = require('@floating-ui/react');
const _Tooltip = require('../Tooltip/Tooltip.js');
const defaultStepperLocalization = {
stepsCountLabel: (currentStep, totalSteps) =>
`Step ${currentStep} of ${totalSteps}:`,
};
const Stepper = _react.forwardRef((props, ref) => {
let {
currentStep,
steps,
type = 'default',
localization = defaultStepperLocalization,
onStepClick,
stepProps,
trackContentProps,
circleProps,
nameProps,
labelProps,
labelCountProps,
...rest
} = props;
let boundedCurrentStep = Math.min(
Math.max(0, currentStep ?? 0),
steps.length - 1,
);
return _react.createElement(
_index.Box,
{
className: 'iui-stepper',
ref: ref,
...rest,
},
_react.createElement(
_react1.FloatingDelayGroup,
{
delay: _Tooltip.defaultTooltipDelay,
},
_react.createElement(
'ol',
null,
steps.map((s, index) => {
let thisStepProps = stepProps?.(index);
let thisTrackContentProps = trackContentProps?.(index);
let thisCircleProps = circleProps?.(index);
let thisNameProps = nameProps?.(index);
return _react.createElement(_StepperStep.StepperStep, {
stepProps: thisStepProps,
trackContentProps: thisTrackContentProps,
circleProps: thisCircleProps,
nameProps: thisNameProps,
key: index,
index: index,
title: 'long' === type ? '' : s.name,
currentStepNumber: boundedCurrentStep,
totalSteps: steps.length,
type: type,
onClick: onStepClick,
description: s.description,
stepContent: s.stepContent,
});
}),
),
),
'long' === type &&
_react.createElement(
_index.Box,
{
as: 'div',
...labelProps,
className: (0, _classnames.default)(
'iui-stepper-steps-label',
labelProps?.className,
),
},
_react.createElement(
_index.Box,
{
as: 'span',
...labelCountProps,
className: (0, _classnames.default)(
'iui-stepper-steps-label-count',
labelCountProps?.className,
),
},
localization.stepsCountLabel(boundedCurrentStep + 1, steps.length),
),
steps[boundedCurrentStep].name,
),
);
});
if ('development' === process.env.NODE_ENV) Stepper.displayName = 'Stepper';