@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
78 lines (77 loc) • 2.56 kB
JavaScript
"use client";
var _StepIndicatorList;
import React, { useContext } from 'react';
import classnames from 'classnames';
import { createSpacingClasses } from "../space/SpacingHelper.js";
import Card from "../Card.js";
import CardContext from "../card/CardContext.js";
import StepIndicatorTriggerButton from "./StepIndicatorTriggerButton.js";
import StepIndicatorSidebar from "./StepIndicatorSidebar.js";
import StepIndicatorList from "./StepIndicatorList.js";
import StepIndicatorContext, { StepIndicatorProvider } from "./StepIndicatorContext.js";
import { stepIndicatorDefaultProps } from "./StepIndicatorProps.js";
import FormStatus from "../form-status/FormStatus.js";
function handleDeprecatedProps(props) {
const {
sidebar_id,
step_title_extended,
...rest
} = props;
return rest;
}
function StepIndicator({
status,
status_state = 'warn',
data = stepIndicatorDefaultProps.data,
skeleton = stepIndicatorDefaultProps.skeleton,
current_step = stepIndicatorDefaultProps.current_step,
hide_numbers = stepIndicatorDefaultProps.hide_numbers,
no_animation = stepIndicatorDefaultProps.no_animation,
expandedInitially = stepIndicatorDefaultProps.expandedInitially,
...restOfProps
}) {
const {
outset,
...props
} = handleDeprecatedProps({
data,
skeleton,
current_step,
hide_numbers,
no_animation,
expandedInitially,
...restOfProps
});
return React.createElement(StepIndicatorProvider, props, React.createElement("div", {
className: "dnb-step-indicator-wrapper"
}, React.createElement(Card, {
align: "stretch",
className: classnames('dnb-step-indicator', createSpacingClasses(restOfProps)),
backgroundColor: "var(--step-indicator-trigger-content-background)",
outset: outset
}, React.createElement(StepIndicatorTriggerButton, {
isNested: useContext(CardContext)?.isNested
}), _StepIndicatorList || (_StepIndicatorList = React.createElement(StepIndicatorList, null))), React.createElement(StepIndicatorStatus, {
status: status,
status_state: status_state
})));
}
function StepIndicatorStatus({
status,
status_state
}) {
const {
openState,
no_animation
} = useContext(StepIndicatorContext);
const show = !openState && !!status;
return React.createElement(FormStatus, {
show: show,
no_animation: no_animation,
state: status && status_state
}, status);
}
StepIndicator.Sidebar = StepIndicatorSidebar;
StepIndicator._supportsSpacingProps = true;
export default StepIndicator;
//# sourceMappingURL=StepIndicator.js.map