Process Timeline
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.
![Process timeline example](./ProcessTimeline.png?v=2)
Development
Web component development
Component reference
rui-process-timeline
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
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
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.
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.
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.
Angular wrapper development
Wrapper reference
jha-process-timeline
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
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
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 needed classes into your TypeScript.
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.
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.
Design
Figma design
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:
|
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.
Adobe XD design
- 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.