Developer Programs

Learn

Docs

Process Timeline

Components > Displaying Data > Process Timeline
Use this component to...
Visually represent a linear, multi-step process, such as a workflow

Overview

A process timeline is a visual representation of a linear, multi-step process, such as a workflow.

The process timeline visually indicates the progress made on each step in the process. These steps are displayed horizontally, from left to right.

Each step in the process can be in one of 4 states:

  • Incomplete: This step has not yet been completed.
  • Complete: This step has been completed.
  • Warning: This step is in a state that requires attention.
  • Error: This step has failed.

Each step displays an icon indicating which of these 4 states the step is currently in.

Each step in the process can optionally display any number of sub-steps below the step, showing a history of events for the step. The last sub-step indicates the current status for this step and always displays directly below the step. Sub-steps before the last sub-step are hidden by default; the user can press a toggle button at the right of the process timeline to show and hide all sub-steps.

Each step and sub-step can optionally be clickable by the user. Clickable steps and sub-steps display with an underline.

While this pattern applies to linear processes, it is possible to indicate that some subsets of the steps in a process timeline can be performed b. A dashed box displays around concurrent steps. This functionality should be used sparingly.

This process timeline shows a wire validation process. The first 3 steps are complete. The 3rd step is clickable. The 4th step has a warning status. The 5th step has an error status. The last step is incomplete. The first 5 steps have sub-steps. Only the last sub-step is displayed for each step.
Process timeline example

Development

Web component development

Component reference

rui-process-timeline
rui-process-timeline
Module: rui-process-timeline - Package: @jkhy/responsive-ui-wc

Provides a visual display of steps and substeps in a timeline, depicting the status of each step and which steps are grouped (or concurrent).

NameTypeDefaultDescription
titleTextstring''Text displayed above the timeline.
stepsArray[]Bind this property to an array of Process Timeline step objects in your controller. See “Process Timeline Step object” below for more information on these objects. Each item in the array corresponds to one top-level step in the timeline. Each step object can also include child Process Timeline substep objects as well.
isBusybooleanfalseDisplays a busy indicator within the process timeline when set to true. Set this to true if the data within the timeline is currently being loaded, false otherwise.
rui-clickeventIf a step or substep object has its isClickable property set to true, this property will fire when those steps are clicked and return the name of the step or substep. If an action needs to happen when the step or substep is clicked, define a rui-click event handler for it.
Process timeline step object
Process timeline step object
Module: rui-process-timeline - Package: @jkhy/responsive-ui-wc

Object that defines one step in a rui-process-timeline. Each step is defined in JavaScript, not in the markup.

NameTypeDefaultDescription
namestring''Text displayed above the icon in the step.
statusstring''Status of the step determining which icon is displayed. One of ‘incomplete’, ‘complete’, ‘warning’, and ’error’.
subStepsArray[](Optional) Array of substeps to be display below the current step in the timeline. See “Process Timeline Substep object” below for more information on these objects.
isClickablebooleanfalse(Optional) If an action needs to happen by clicking this step, set this to true.
tooltipstring''(Optional) Tooltip displayed when user hovers over the step in the timeline.
isConcurrentbooleanfalse(Optional) If this step happens concurrently with the next step in the object, set this to true so it is visually represented in the timeline.
Process timeline sub-step object
Process timeline sub-step object
Module: rui-process-timeline - Package: @jkhy/responsive-ui-wc

Object that defines one sub-step in a rui-process-timeline.

NameTypeDefaultDescription
textstring''Text displayed in sub-step, below the icon in the step.
isClickablebooleanfalse(Optional) If an action needs to happen by clicking this sub-step, set this to true.
tooltipstring''(Optional) Tooltip displayed when user hovers over the sub-step in timeline.

Implementation

Begin by importing the rui-process-timeline module into your application.

Import the module
// import into app.module
import '@jkhy/responsive-ui-wc/components/rui-process-timeline/rui-process-timeline-imports';

Define the steps and sub-steps of the timeline using an array of step and sub-step objects in your controller. If one or more of the steps are clickable, create a handler to be called when those elements are clicked.

Define the steps and sub-steps
public processTimelineWireSteps = [];

public ngOnInit(): void {
    this.processTimelineWireSteps = [
        {
            name: 'New',
            status: 'complete',
            subSteps: [
                { text: 'Ready' }
            ],
            isClickable: true
        },
        {
            name: 'OFAC',
            status: 'complete',
            subSteps: [
                { text: 'OFAC Pending' },
                { text: 'OFAC Failed', isClickable: true, tooltip: 'The OFAC check failed due to incomplete data' },
                { text: 'OFAC Passed' }
            ],
            tooltip: 'The OFAC Review step is probably the most complex step in the process'
        },
        {
            name: 'Dual-Control Approval',
            status: 'complete',
            subSteps: [
                { text: 'Required' }
            ],
            isClickable: true
        },
        {
            name: 'Verified',
            status: 'warning',
            subSteps: [
                { text: 'Verified' }
            ]
        },
        {
            name: 'Initiated',
            status: 'error',
            subSteps: [
                { text: 'Initiated' }
            ]
        },
        {
            name: 'Process',
            status: 'incomplete'
        }
    ];
}

public stepClicked(e): void {
    console.log(e.detail);
}

Then add an instance of rui-process-timeline to your markup. Specify the titleText to be displayed above the timeline. Bind steps to the array of step objects and define an rui-click event handler to be called when steps or substeps are clicked.

Process timeline HTML
<rui-process-timeline titleText="Wire Validation Status" [steps]="processTimelineWireSteps" (rui-click)="stepClicked($event);">
</rui-process-timeline>

Angular wrapper development

Wrapper reference

jha-process-timeline
jha-process-timeline
Module: JhaProcessTimelineModule - Package: @jkhy/responsive-ui-angular

Provides a visual display of steps and substeps in a timeline, depicting the status of each step and which steps are grouped (or concurrent).

NameTypeDefaultDescription
jhaTitlestring''Text displayed in the top left corner of the timeline.
jhaStepsArray<JhaProcessTimelineStep>[]Bind this property to an array of JhaProcessTimelineStep objects in your TypeScript. Each item in the array corresponds to one top-level step in the timeline. The object can also include child JhaProcessTimelineSubstep objects as well.
jhaIsBusybooleanfalseDisplays a busy indicator within the process timeline when set to true. Set this to true if the data within the timeline is currently being loaded, false otherwise.
jhaClickeventIf a JhaProcessTimelineStep or JhaProcessTimelineSubstep object has its isClickable property set to true, this property will fire when those steps are clicked and return the name of the step or substep. If an action needs to happen when the step or substep is clicked, define a jhaClick event handler for it.
JhaProcessTimelineStep
JhaProcessTimelineStep
Module: JhaProcessTimelineModule - Package: @jkhy/responsive-ui-angular

Class that defines one step in a jha-process-timeline. Each step is defined in TypeScript, not in the markup.

NameTypeDefaultDescription
namestring''Text displayed above the icon in the step.
statusJhaProcessTimelineStepStatusStatus of the step determining which icon is displayed. These values are in the JhaNotificationTypes enum and the options are Incomplete, Complete, Warning and Error.
subStepsArray<JhaProcessTimelineSubstep>[](Optional) Array of substeps to be display below the current step in the timeline.
isClickablebooleanfalse(Optional) If an action needs to happen by clicking this step, set this to true.
tooltipstring''(Optional) Tooltip displayed when user hovers over the step in the timeline.
isConcurrentbooleanfalse(Optional) If this step happens concurrently with the next step in the object, set this to true so it is visually represented in the timeline.
JhaProcessTimelineSubstep
JhaProcessTimelineSubstep
Module: JhaProcessTimelineModule - Package: @jkhy/responsive-ui-angular

Class that defines one sub-step in a jha-process-timeline.

NameTypeDefaultDescription
textstring''Text displayed in sub-step, below the icon in the step.
isClickablebooleanfalse(Optional) If an action needs to happen by clicking this sub-step, set this to true.
tooltipstring''(Optional) Tooltip displayed when user hovers over the sub-step in timeline.

Implementation

Begin by importing the JhaProcessTimelineModule module into your application.

Import the module
// import into app.module
import { JhaProcessTimelineModule } from '@jkhy/responsive-ui-angular';

@NgModule({
    imports: [
        ...
        JhaProcessTimelineModule,
        ...
    ]
})

export class AppModule(){}

Import the needed classes into your TypeScript.

Import the module
import { JhaProcessTimelineStep } from '@jkhy/responsive-ui-angular/jha-process-timeline/';
import { JhaProcessTimelineSubstep } from '@jkhy/responsive-ui-angular/jha-process-timeline';
import { JhaProcessTimelineStepStatus } from '@jkhy/responsive-ui-angular/jha-process-timeline';

Define the steps and substeps of the timeline using an array of JhaProcessTimelineStep and JhaProcessTimelineSubstep objects in your TypeScript. If one or more of the steps are clickable, create a method to be called when those elements are clicked.

Define the steps and sub-steps
public processTimelineWireSteps: JhaProcessTimelineStep[] = [];

public ngOnInit(): void {

    this.processTimelineWireSteps = [
        new JhaProcessTimelineStep('New', JhaProcessTimelineStepStatus.Complete, [
            new JhaProcessTimelineSubstep('Ready')
        ], true),
        new JhaProcessTimelineStep('OFAC', JhaProcessTimelineStepStatus.Complete, [
            new JhaProcessTimelineSubstep('OFAC Pending'),
            new JhaProcessTimelineSubstep('OFAC Failed', true, 'The OFAC check failed due to incomplete data'),
            new JhaProcessTimelineSubstep('OFAC Passed')
        ], false, 'The OFAC Review step is probably the most complex step in the process'),
        new JhaProcessTimelineStep('Dual-Control Approval', JhaProcessTimelineStepStatus.Complete, [
            new JhaProcessTimelineSubstep('Required')
        ], true),
        new JhaProcessTimelineStep('Verified', JhaProcessTimelineStepStatus.Warning, [
            new JhaProcessTimelineSubstep('Verified')
        ]),
        new JhaProcessTimelineStep('Initiated', JhaProcessTimelineStepStatus.Error, [
            new JhaProcessTimelineSubstep('Initiated')
        ]),
        new JhaProcessTimelineStep('Process', JhaProcessTimelineStepStatus.Incomplete)
    ];

}

public stepClicked(stepName: string) {
    console.log(stepName);
}

Then add an instance of jha-process-timeline to your markup. Specify the jhaTitle to be displayed above the timeline. Bind jhaSteps to the array of JhaProcessTimelineStep objects and jhaClick to the method to be called when steps are clicked, both defined in the TypeScript.

Process timeline HTML
<jha-process-timeline jhaTitle="Wire Validation Status" [jhaSteps]="processTimelineWireSteps"
 (jhaClick)="stepClicked($event);">
</jha-process-timeline>

Design

Figma design

Figma design info
You can find this component in the Components - Process Timeline page in the Figma UI Kit.
Dev ComponentDesign Component Name
Process timeline containerRUI / Process Timeline / Container
Process timeline barRUI / Process Timeline / Bar
Process timeline expand/collapse button

RUI / Process Timeline / Expand-Collapse Button

Switch on the Expanded property to display expanded.

Process timeline step

RUI / Process Timeline / Step

Available values for the Sort Direction property:

  • Incomplete
  • Complete
  • Warning
  • Error
Process timeline sub-stepRUI / Process Timeline / Substep
Process timeline concurrent steps barRUI / Process Timeline / Concurrent Steps Container

Start by dragging a process timeline container to your artboard. Change the title to an appropriate value. Lock the container.

Next, drag instances of process timeline steps to your artboard for each step in your process timeline — Incomplete, Complete, Warning, and Error — and vertically center them with each other and within the container.

If you’re showing the process timeline collapsed, then drag a process timeline expand/collapse button to the right of all of the steps and switch off its Expanded property. Vertically center it with the steps.

If you’re showing the process timeline expanded, then drag a process timeline expand/collapse button to the right of all of the steps and switch on its Expanded property. Horizontally center it with the steps. Then drag instances of the process timeline sub-step below their relevant step in the container, stacking them vertically. Horizontally center each step and its sub-steps.

Then drag a process timeline bar to the container. Position it below the steps. Resize its width until its left side starts at the first step and its right side ends at the last step.

If you’re showing concurrent steps in your process timeline (which is rare), drag a process timeline concurrent steps bar to the container. Position it just above the steps, with it starting halfway between the first concurrent step and the step before that, and with it ending halfway between the final concurrent step and the step after that.


Adobe XD design

Adobe XD design info
You can find this component in these artboards in the Adobe XD design samples:
  • Sample App - Process Timeline
Dev ComponentDesign Component Name
Process timeline containerJHA / Process Timeline / Container
Process timeline barJHA / Process Timeline / Bar
Process timeline expand buttonJHA / Process Timeline / Expand Button
Process timeline collapse buttonJHA / Process Timeline / Collapse Button
Process timeline step – incompleteJHA / Process Timeline / Step / Incomplete
Process timeline step – completeJHA / Process Timeline / Step / Complete
Process timeline step – warningJHA / Process Timeline / Step / Warning
Process timeline step – errorJHA / Process Timeline / Step / Error
Process timeline sub-stepJHA / Process Timeline / Substep
Process timeline concurrent steps barJHA / Process Timeline / Concurrent Steps Bar

Start by dragging a process timeline container to your artboard. Change the title to an appropriate value. Lock the container.

Next, drag instances of process timeline steps to your artboard for each step in your process timeline — Incomplete, Complete, Warning, and Error — and vertically center them with each other and within the container.

If you’re showing the process timeline collapsed, then drag a process timeline expand/collapse button to the right of all of the steps and switch off its Expanded property. Vertically center it with the steps.

If you’re showing the process timeline expanded, then drag a process timeline expand/collapse button to the right of all of the steps and switch on its Expanded property. Horizontally center it with the steps. Then drag instances of the process timeline sub-step below their relevant step in the container, stacking them vertically. Horizontally center each step and its sub-steps.

Then drag a process timeline bar to the container. Position it below the steps. Resize its width until its left side starts at the first step and its right side ends at the last step.

If you’re showing concurrent steps in your process timeline (which is rare), drag a process timeline concurrent steps bar to the container. Position it just above the steps, with it starting halfway between the first concurrent step and the step before that, and with it ending halfway between the final concurrent step and the step after that.


Support options
Have questions on this topic?
Join the Responsive UI team in Microsoft Teams to connect with the community.
See something in this page that needs to change?
Send us feedback on this page.
Last updated Fri Jul 28 2023