Dashboard Technical Reference

View as Markdown

Dashboard State

DashboardState

Dashboard section of Adaptable State, including Initial State.

The Dashboard sits above the grid. Tabs are named groups of toolbars (the default is an empty list). PinnedToolbars sit above the grid and are not inside a tab. ActiveTabIndex is the zero-based index of the open tab. IsCollapsed leaves the header visible and hides the tab contents. IsFloating shows a draggable dashboard; FloatingPosition is its pixel position. IsHidden removes it until it is shown again from the Column Menu or Tool Panel.

Extends

BaseState

Zero-based index into Tabs of the tab that is open.

Title displayed in Dashboard Header

Default

adaptableId in Adaptable Options

Pixel position of the Dashboard while IsFloating is true. x and y are offsets in pixels.

IsCollapsed?

boolean

Is Dashboard collapsed; if true, header is visible (but not Tabs' contents)

Default

false

IsFloating?

boolean

Is Dashboard floating; if true, it appears in a draggable form (double-click to revert to the default position)

Default

false

IsHidden?

boolean

Whether Dashboard is completely hidden - can be made visible again in Column Menu and Tool Panel

Default

false

ModuleButtons?

AdaptableModuleButtons

Module shortcut buttons in the Dashboard header (actions zone).

Opening the Settings Panel itself is handled by the fixed Home control (application icon or
configuration icon) on the left of the Dashboard — do not include 'SettingsPanel' here.

Default

[]

PinnedToolbars?

AdaptableDashboardToolbars | string[]

Toolbars shown above the grid, outside any tab.

Named groups of toolbars. Each tab has a Name and the Toolbars it shows.

Default

Empty Array

Tabs

DashboardTab

One Dashboard tab.

Name is the label in the header. Toolbars are the toolbars shown while this tab is the active one (ActiveTabIndex).

Name

string

Name of the Dashboard Tab as it appears in the Dashboard header

Toolbars

AdaptableDashboardToolbars | string[]

List of Toolbars to show in the Tab

IsReadOnly?

boolean

Sets Entity to ReadOnly (overwriting a Strategy Entitlement of 'Full')

Floating Position

AdaptableCoordinate

Pixel position of the floating Dashboard.

x

number

Horizontal offset, in pixels.

y

number

Vertical offset, in pixels.

IsReadOnly?

boolean

Sets Entity to ReadOnly (overwriting a Strategy Entitlement of 'Full')

Dasboard Options

DashboardOptions

Options related to the Dashboard in Adaptable.

Where in Dashboard to display Module and Custom Buttons

Default

'right'

canFloat?

boolean

Whether the Dashboard can be floated; if true (the default), double-clicking Dashboard puts it in float mode

Default

true

Custom Adaptable Buttons to appear in Dashboard

Toolbars provided by Users which contain custom content

Shows Quick Search input in Dashboard Header

Default

true

Buttons

buttonsLocation is a DashboardButtonsLocation:

Value
'left'
'right'

customDashboardButtons is a list of AdaptableButton objects. The click handler receives a DashboardButtonContext.

AdaptableButton

A button on a form, alert or toolbar.

label is the text. onClick runs when it is clicked and receives the button and the form or event context. buttonStyle and icon are optional. disabled and hidden are functions that return whether the button is disabled or hidden.

buttonStyle?

ButtonStyle| ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) =>ButtonStyle)

Style for Button - can be object or function that provides a ButtonStyle object

disabled?

(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean

Function that disables / enables the button based on its evaluation result

hidden?

(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean

Function which sets whether Button is hidden

icon?

AdaptableIcon| ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) =>AdaptableIcon)

Icon for Button - can be object or function that provides a AdaptableIcon object

iconPosition?

'start' | 'end'

Where the icon appears relative to the label

Default

'start'

label?

string | ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string)

Label for Button - can be string or function that provides string

onClick?

(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => void

Function to invoke when button is clicked

tooltip?

string | ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string)

Tooltip for Button - can be string or function that provides string

ButtonStyle

Appearance of an AdapTable button.

variant is 'text', 'outlined' (the default) or 'raised'. tone is the colour: 'neutral' (the default), 'success', 'error', 'warning', 'info', 'accent' or 'none'. className adds a CSS class.

className?

string

CSS Classname to use for the Button

tone?

'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent'

Button's Tone - values: 'success', 'error', 'neutral', 'none', 'warning', 'info', 'accent'

Default

'neutral'

variant?

'text' | 'outlined' | 'raised'

How Button appears - values: 'text', 'outlined', 'raised'

Default

'outlined'

Custom Toolbars

CustomToolbar

Custom Toolbar (which AdapTable will manage) enabling devs to populate Dashboard with bespoke content.

The Framework-specific (Angular, React or Vue) component to be rendered

name

string

How Toolbar is referenced (e.g. in Dashboard Popup when managing toolbars)

onToolbarFormChange?

(formData: TData, context:CustomToolbarFormContext<TData>) => void

Callback invoked whenever the user changes a value in the toolbar form

render?

(customRenderContext:CustomRenderContext) => string | null

Function to provide custom content when NOT using a Framework wrapper

title?

string

Title to display in Toolbar; if unset or empty string, nothing will show

Actions available in a Custom Dashboard Toolbar

Optional set of buttons to show in the Toolbar

Optional inline form to render in the Toolbar (e.g. selects, checkboxes,
inputs).

Use this when you want to expose interactive controls - rather than just
buttons - in your Custom Toolbar without resorting to bespoke render
or frameworkComponent content.

The form's fields are rendered side-by-side using the inline form
layout. When the user changes any value the
callback is invoked. Buttons declared on the form receive a
which includes the current formData.

toolbarActions is 'close' or 'configure'.

toolbarButtons is a list of AdapTable Buttons. The click handler receives a CustomToolbarButtonContext:

toolbarForm is an AdaptableForm:

AdaptableForm

Expand

Defines the form. fields is a list of fields, rows of fields, or field groups. buttons are the form buttons. layout is rows (the default) or inline.

AdaptableForm

Defines a form which appears dynamically; used by Alerts, Export Custom Destinations and Dashboard Custom Toolbars.

Buttons to include in the Form

Additional information to appear in the Form

Collection of Dynamic Fields and Field Groups to display.

Items can be:
- a single (rendered on its own row in the
default rows layout, or as one cell in the inline layout),
- an array of (rendered side-by-side on the
same row in the rows layout), or
- an (a labelled section that
visually groups related fields).

How the form's fields are arranged on screen.

- rows (default): each field on its own row, label on the left and
input on the right. Suitable for popups / wizards.
- inline: fields are placed side-by-side on a single horizontal line,
with the label rendered immediately before its input. Designed for
compact contexts such as Dashboard Custom Toolbars where vertical
real-estate is scarce.

Default

'rows'

onSubmit?

(formData: TData, context: T) => void

Optional form-level submit hook.

Fired when the user presses Enter while focus is inside any field
input AND the form is currently valid. The full formData is passed
through, typed as TData if you've supplied a custom shape.

Use this as an ergonomic shortcut to avoid wiring an explicit "Submit"
button - or in addition to one, so power users can press Enter to
commit. If the form is invalid the hook is not invoked.

title?

string

Title to appear in the Form

Each field is an AdaptableFormField:

AdaptableFormField

Defines a Field that appears in an Adaptable Form

For single select fields only. When the user clears the combobox,
whether to restore instead of leaving the field empty.

Defaults to true when defaultValue is set, otherwise false.
Set to false when an empty selection is a distinct state from the default.

defaultValue?

string | boolean | number | Array<string | number | boolean>

Field Default Value - can be of type string, boolean, number, or for
select fields with multi: true an array of those.

For single select fields, this is also the value restored when the user
clears the combobox (unless is false).

disabled?

boolean | ((formData:AdaptableFormData, context:BaseContext) => boolean)

Disable the field's input. Either a boolean or a function evaluated
against the current form data. Disabled fields render but the user
cannot edit them.

Field Type - dictates which UI control is rendered

helpText?

string

Inline help text rendered immediately below the field's input. Useful
for short explanations such as "format: YYYY-MM-DD" or "min 3 chars".

hidden?

boolean | ((formData:AdaptableFormData, context:BaseContext) => boolean)

Hide the field. Either a boolean or a function evaluated against the
current form data. Hidden fields are not rendered and are excluded from
validation.

label

string

Label to display in the Field

max?

number | string

Maximum allowed value. For number and slider: the highest accepted
number. For date, time and datetime: the latest allowed value in
ISO format.

maxLength?

number

Maximum length for text and textarea fields.

min?

number | string

Minimum allowed value. For number and slider: the lowest accepted
number. For date, time and datetime: the earliest allowed value
in ISO format (YYYY-MM-DD / HH:mm / YYYY-MM-DDTHH:mm).

minLength?

number

Minimum length for text and textarea fields.

multi?

boolean

For select fields only. When true the field renders as a
multi-select combobox; the field's value is an array of selected
option.values rather than a single value.

Default

false

name

string

Name of the Field

onValueChange?

(value: any, context:BaseContext) => void

Optional callback invoked whenever value of this field changes

Items to populate the select and radio fieldTypes.

Either a static array, or a function that derives the options from the
current form data and Adaptable context. The function form may return
a Promise for asynchronously-loaded options - the form will render the
field with no items until the promise resolves.

pattern?

string

Regular expression that the value of a text field must match.

Placeholder text shown inside text, textarea, number, date,
time and datetime inputs when empty. For select fields it is
rendered as the empty-state label when no value is selected.

When omitted on a select field with a , the label of
the matching options entry is used as the empty-state label.

render?

(params:AdaptableFormFieldRenderParams) => React.ReactNode

For custom fields only. Renders an arbitrary React node as the
field's input. Receives the current value, a setValue setter
(controlled), the current form data, the Adaptable context and the
resolved disabled state.

Use this as an escape hatch when none of the built-in fieldTypes
fit - e.g. to render a star-rating widget, a tag editor or any
bespoke control.

required?

boolean

If true the field is treated as required. An empty value ('',
null, undefined, or unchecked checkbox) will produce a validation
error.

rows?

number

For textarea fields: the visible number of text rows.

Default

3

step?

number

Stepping interval for number, slider, time and datetime
fields.

tooltip?

string

Tooltip shown when hovering the field's label.

validate?

(value: any, formData:AdaptableFormData, context:BaseContext) => string | null | undefined

Custom field-level validation. Return an error message string to mark
the field invalid, or null/undefined if the value is valid.

Custom validation runs after built-in checks (required, min,
max, pattern, etc.) - the first failing check wins.

fieldType is an AdaptableFormFieldType:

Value
'text'
'textarea'
'select'
'radio'
'date'
'time'
'datetime'
'number'
'slider'
'color'
'checkbox'
'textOutput'
'custom'

Select and radio options are AdaptableFormFieldOption objects:

AdaptableFormFieldOption

One choice in a select or radio form field.

label

string

Text shown for this choice.

Value written into the form data when this choice is selected.

layout is an AdaptableFormLayout:

Value
'rows'
'inline'

buttons are AdaptableButton objects:

AdaptableButton

A button on a form, alert or toolbar.

label is the text. onClick runs when it is clicked and receives the button and the form or event context. buttonStyle and icon are optional. disabled and hidden are functions that return whether the button is disabled or hidden.

buttonStyle?

ButtonStyle| ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) =>ButtonStyle)

Style for Button - can be object or function that provides a ButtonStyle object

disabled?

(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean

Function that disables / enables the button based on its evaluation result

hidden?

(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean

Function which sets whether Button is hidden

icon?

AdaptableIcon| ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) =>AdaptableIcon)

Icon for Button - can be object or function that provides a AdaptableIcon object

iconPosition?

'start' | 'end'

Where the icon appears relative to the label

Default

'start'

label?

string | ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string)

Label for Button - can be string or function that provides string

onClick?

(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => void

Function to invoke when button is clicked

tooltip?

string | ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string)

Tooltip for Button - can be string or function that provides string

buttonStyle is a ButtonStyle:

ButtonStyle

Appearance of an AdapTable button.

variant is 'text', 'outlined' (the default) or 'raised'. tone is the colour: 'neutral' (the default), 'success', 'error', 'warning', 'info', 'accent' or 'none'. className adds a CSS class.

className?

string

CSS Classname to use for the Button

tone?

'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent'

Button's Tone - values: 'success', 'error', 'neutral', 'none', 'warning', 'info', 'accent'

Default

'neutral'

variant?

'text' | 'outlined' | 'raised'

How Button appears - values: 'text', 'outlined', 'raised'

Default

'outlined'

Dashboard API

DashboardApi

Functions relating to the AdapTable Dashboard.

Collapses Dashboard so only Dashboard Header is visible (and not Toolbars' contents)

dockDashboard()
returns

void

Docks Dashboard so it 'snaps back' into its customary position above the grid

Expands Dashboard so Toolbars in Active Tab are fully visible

floatDashboard()
returns

void

Floats Dashboard so only Dashboard Header is visible (in reduced size); can be dragged to a new location

getActiveTab()
returns

DashboardTab | undefined

Returns current Active Tab (if there is one)

getActiveTabIndex()
returns

number | undefined

Returns current Active Tab index (if there is one)

getCurrentToolbars()
returns

AdaptableDashboardToolbars | string[]

Retrieves all Toolbars in Active Tab

Retrieves first Custom Button with given Label

Returns Custom Toolbar with the given name

Returns the HTML Element for the given Custom Toolbar. This should only be used in Vanilla AdapTable for toolbars created via a render function.

Retrieves all Custom Toolbars

Retrieves Dashboard section from Adaptable State

getModuleButtons()
returns

AdaptableModuleButtons

Retrieves the Module Buttons in the Dashboard

getPinnedToolbars()
returns

AdaptableDashboardToolbars | string[]

Retrieves pinned toolbars

Retrieves the Tab from State that matches inputted name

Retrieves the Tabs in the Dashboard

hideDashboard()
returns

void

Hides the Dashboard so cannot be seen

Is Dashboard Collapsed

isDashboardDocked()
returns

boolean

Is Dashboard Docked

isDashboardExpanded()
returns

boolean

Is Dashboard Expanded

isDashboardFloating()
returns

boolean

Is Dashboard Floating

isDashboardHidden()
returns

boolean

Is Dashboard Hidden

isDashboardVisible()
returns

boolean

Is Dashboard Visible

Checks if a given Toolbar is visible

Opens Settings Panel with Dashboard section selected and visible

Refreshes entire Dashboard, including Toolbars and Buttons; particularly relevant for AdapTable built-in elements, as framework components are dependent on the framework specific change detection mechanisms

Resets the data of a Custom Toolbar's toolbarForm back to the
defaultValues declared on its fields - clearing any user input
without unmounting / re-mounting the toolbar.

Useful for "Clear filters" buttons that need to wipe both the grid
filter AND the toolbar form's internal state in a single click.

Selects the Dashboard tab with this name.

Selects the Dashboard tab at this index.

Renders the given HTML string in the given Custom Toolbar. This should only be used in Vanilla AdapTable for toolbars created via a render function!

Sets the title shown in the Dashboard header.

Sets which Module Buttons are visible

Pins toolbars so they stay visible when the active tab changes.

setTabs(Tabs)
returns

void

Replaces the tabs shown in the Dashboard.

showDashboard()
returns

void

Makes the Dashboard visible

AdapTable Events

There are 2 Adaptable Events which are fired by AdapTable related to the Dashboard:

Dashboard Changed

The Dashboard Changed Event fires when anything has changed in the Dashboard.

The DashboardChangedInfo object which is provided, includes the trigger for the Change and new and old versions of Dashboard State.

It includes these properties:

DashboardChangedInfo

Payload of the DashboardChanged event.

Fires when Dashboard State changes, and once shortly after startup (actionName ADAPTABLE_READY). It is not fired when the old and new state are equal.

Extends , so adaptableApi is included.

What changed.

ADAPTABLE_READY is the first event, shortly after startup.

Otherwise it is the Redux action type:
DASHBOARD_SET_IS_COLLAPSED, DASHBOARD_SET_IS_HIDDEN, DASHBOARD_SET_IS_FLOATING, DASHBOARD_SET_FLOATING_POSITION, DASHBOARD_SET_MODULE_BUTTONS, DASHBOARD_SET_TABS, DASHBOARD_ACTIVE_TAB_INDEX_CHANGE, DASHBOARD_CLOSE_TOOLBAR.

Dashboard State after this change.

Dashboard State before this change.

null when actionName is ADAPTABLE_READY.

Custom application Context provided in AdaptableOptions.adaptableContext

And these methods:

DashboardChangedInfo

Payload of the DashboardChanged event.

Fires when Dashboard State changes, and once shortly after startup (actionName ADAPTABLE_READY). It is not fired when the old and new state are equal.

Extends , so adaptableApi is included.

Whether toolbarName became hidden because of this change.

True when the toolbar left the active tab, or it stayed in the active tab and the Dashboard was collapsed or hidden.

Whether toolbarName became visible because of this change.

True when the toolbar entered the active tab, or it was already in the active tab and the Dashboard was expanded or unhidden.

Custom Toolbar Configured

The Custom Toolbar Configured Event fires when the Configure button has been clicked in a Custom Toolbar.

The CustomToolbarConfiguredInfo simply provides the particular Custom Toolbar where the button was clicked:

Events Subscription

Subscribing to the Events is done the same as with all Adaptable Events:

api.eventApi.on('DashboardChanged', (eventInfo: DashboardChangedInfo) => {
});

api.eventApi.on('CustomToolbarConfigured', (eventInfo: CustomToolbarConfiguredInfo) => {
});