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 cilckable. 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: @jha/rui-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).

Name Type Default Description
titleText string '' Text displayed above the timeline.
steps Array [] 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.
isBusy boolean false Displays 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-click event If 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: @jha/rui-wc

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

Name Type Default Description
name string '' Text displayed above the icon in the step.
status string '' Status of the step determining which icon is displayed. One of ‘incomplete’, ‘complete’, ‘warning’, and ’error’.
subSteps Array [] (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.
isClickable boolean false (Optional) If an action needs to happen by clicking this step, set this to true.
tooltip string '' (Optional) Tooltip displayed when user hovers over the step in the timeline.
isConcurrent boolean false (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: @jha/rui-wc

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

Name Type Default Description
text string '' Text displayed in sub-step, below the icon in the step.
isClickable boolean false (Optional) If an action needs to happen by clicking this sub-step, set this to true.
tooltip string '' (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 '@jha/rui-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 component development

Component reference

jha-process-timeline
jha-process-timeline
Module: JhaProcessTimelineModule - Package: @jha/jharesponsive

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

Name Type Default Description
jhaTitle string '' Text displayed in the top left corner of the timeline.
jhaSteps Array<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.
jhaIsBusy boolean false Displays 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.
jhaClick event If 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: @jha/jharesponsive

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

Name Type Default Description
name string '' Text displayed above the icon in the step.
status JhaProcessTimelineStepStatus Status of the step determining which icon is displayed. These values are in the JhaNotificationTypes enum and the options are Incomplete, Complete, Warning and Error.
subSteps Array<JhaProcessTimelineSubstep> [] (Optional) Array of substeps to be display below the current step in the timeline.
isClickable boolean false (Optional) If an action needs to happen by clicking this step, set this to true.
tooltip string '' (Optional) Tooltip displayed when user hovers over the step in the timeline.
isConcurrent boolean false (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: @jha/jharesponsive

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

Name Type Default Description
text string '' Text displayed in sub-step, below the icon in the step.
isClickable boolean false (Optional) If an action needs to happen by clicking this sub-step, set this to true.
tooltip string '' (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 '@jha/jharesponsive';

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

export class AppModule(){}

Import the needed classes into your TypeScript.

Import the module
import { JhaProcessTimelineStep } from '@jha/jharesponsive/jha-process-timeline/';
import { JhaProcessTimelineSubstep } from '@jha/jharesponsive/jha-process-timeline';
import { JhaProcessTimelineStepStatus } from '@jha/jharesponsive/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 Component Design Component Name
Process timeline container RUI / Process Timeline / Container
Process timeline bar RUI / 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-step RUI / Process Timeline / Substep
Process timeline concurrent steps bar RUI / 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.

Process timeline design
Process timeline design

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 Component Design Component Name
Process timeline container JHA / Process Timeline / Container
Process timeline bar JHA / Process Timeline / Bar
Process timeline expand button JHA / Process Timeline / Expand Button
Process timeline collapse button JHA / Process Timeline / Collapse Button
Process timeline step – incomplete JHA / Process Timeline / Step / Incomplete
Process timeline step – complete JHA / Process Timeline / Step / Complete
Process timeline step – warning JHA / Process Timeline / Step / Warning
Process timeline step – error JHA / Process Timeline / Step / Error
Process timeline sub-step JHA / Process Timeline / Substep
Process timeline concurrent steps bar JHA / 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.

Process timeline design
Process timeline design

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 Wed Mar 29 2023