"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.withColor = exports.withState = exports.withCompletedSteps = exports.defaultState = void 0;
const react_1 = __importDefault(require("react"));
const _1 = require(".");
const meta = {
    component: _1.ProgressTracker,
    title: 'checkout-web-ui/ProgressTracker',
};
exports.default = meta;
function step(step, state, stateHidden = true) {
    switch (step) {
        case 'confirmed':
            return (<_1.ProgressTrackerStep icon="checkmark" id={step} label="Confirmed" description="March 16" state={state} stateHidden={stateHidden}/>);
        case 'onItsWay':
            return (<_1.ProgressTrackerStep icon="truck" id={step} label="On its way" description="March 17" state={state} stateHidden={stateHidden}/>);
        case 'outForDelivery':
            return (<_1.ProgressTrackerStep icon="delivery" id={step} label="Out for delivery" description="March 18" state={state} stateHidden={stateHidden}/>);
        case 'delivered':
            return (<_1.ProgressTrackerStep icon="delivered" id={step} label="Delivered" description="March 19" state={state} stateHidden={stateHidden}/>);
        case 'failure':
            return (<_1.ProgressTrackerStep icon="errorFill" iconAppearance="critical" id={step} label="Not delivered" description="March 19" state={state} stateHidden={stateHidden}/>);
    }
}
exports.defaultState = () => (<_1.ProgressTracker>
    {step('confirmed', 'Current step')}
    {step('onItsWay', 'Upcoming step')}
    {step('outForDelivery', 'Upcoming step')}
    {step('delivered', 'Upcoming step')}
  </_1.ProgressTracker>);
exports.withCompletedSteps = () => (<_1.ProgressTracker activeStep="onItsWay">
    {step('confirmed', 'Past step')}
    {step('onItsWay', 'Current step')}
    {step('outForDelivery', 'Upcoming step')}
    {step('delivered', 'Upcoming step')}
  </_1.ProgressTracker>);
exports.withState = () => (<_1.ProgressTracker activeStep="outForDelivery">
    {step('confirmed', 'Past step:', false)}
    {step('onItsWay', 'Past step:', false)}
    {step('outForDelivery', 'Current step:', false)}
    {step('delivered', 'Upcoming step:', false)}
  </_1.ProgressTracker>);
exports.withColor = () => (<_1.ProgressTracker activeStep="failure">
    {step('confirmed', 'Past step:')}
    {step('onItsWay', 'Past step:')}
    {step('outForDelivery', 'Past step:')}
    {step('failure', 'Current step:')}
  </_1.ProgressTracker>);
