UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

110 lines (109 loc) 3.21 kB
'use strict'; 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';